캐시된 Docker Hub 이미지 가져오기

Container Registry는 mirror.gcr.io에서 자주 액세스되는 공개 Docker Hub 이미지를 캐시합니다. 캐시된 공개 이미지를 사용할 수 있는 경우 Docker 데몬을 구성하여 이 이미지를 사용하거나 캐시된 사본을 사용할 수 없는 경우 Docker Hub에서 이미지를 가져올 수 있습니다.

Cloud Build 및 Google Kubernetes Engine과 같은 Google Cloud 서비스는 Docker Hub에서 이미지를 가져오기 전에 캐시된 이미지를 자동으로 확인합니다.

mirror.gcr.io에서 캐시된 이미지는 다음과 같습니다.

  • Google에서 관리하는 저장소에 저장됩니다.
  • Docker Hub 작동 중단으로부터 더욱 안전하게 보호됩니다.
  • Google Cloud 생태계와 쉽게 통합됩니다.
  • Docker Hub와 계속 동기화됩니다.

Docker 데몬 구성

Container Registry 캐시에서 이미지를 가져오도록 Docker 데몬을 구성하려면 다음 안내를 따르세요.

CLI

  1. 다음 방법 중 하나로 데몬을 구성합니다.

    • 시작할 때 자동으로 Docker 데몬을 구성하려면 /etc/docker/daemon.json에 다음 값을 설정합니다.

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • 데몬을 시작할 때 다음 Container Registry 호스트 이름을 전달합니다.

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • /etc/default/docker 파일에 다음 줄을 추가합니다.

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Docker 데몬을 다시 시작합니다.

    • Linux에서 다음 명령어 중 하나를 실행합니다.

      sudo service docker restart
      

      또는

      sudo service docker stop && sudo service docker start
      
    • macOS 또는 Windows에서 다음 명령어를 실행합니다.

      docker-machine restart
      

Docker UI

  1. Docker의 환경설정 메뉴를 엽니다.
  2. 데몬을 클릭합니다.
  3. Advanced(고급)을 클릭합니다. JSON 필드에 registry-mirrors 키를 추가하고 값으로 https://mirror.gcr.io를 지정합니다.

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. 적용 및 재시작을 클릭합니다.

캐시가 올바르게 구성되었는지 확인하려면 다음을 실행합니다.

docker system info

결과는 Registry Mirrors를 포함하고 다음과 유사해야 합니다.

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

캐시된 이미지 가져오기

Container Registry는 자주 요청되는 이미지를 나중에 요청에 사용할 수 있도록 캐시에 추가합니다. 더 이상 요청되지 않는 이미지도 주기적으로 삭제됩니다.

Container Registry 캐시를 사용하도록 Docker 데몬을 구성하면 Docker는 docker pull 명령어로 공개 Docker Hub 이미지를 가져올 때 다음 단계를 수행합니다.

  1. Docker 데몬은 Container Registry 캐시를 확인하고 이미지가 있으면 가져옵니다. 데몬 구성에 다른 Docker 미러가 포함되어 있으면 데몬은 캐시된 이미지 복사본의 순서대로 각 미러를 확인합니다.
  2. 이미지를 발견하지 못하면 Docker 데몬은 Docker Hub의 정규 저장소에서 이미지를 가져옵니다.

캐시된 이미지를 가져오는 것은 Docker Hub 비율 제한에 포함되지 않습니다. 하지만 특정 이미지가 장시간 동안 캐시된 상태로 유지된다는 보장은 없습니다. Docker 데몬을 구성하여 mirror.gcr.io에서만 캐시된 이미지를 가져옵니다. 이미지의 캐시된 사본이 없으면 mirror.gcr.io에서 직접 가져오는 요청이 실패합니다.

다음 단계

  • 자체 Docker 미러를 만들어 이미지를 캐시할 수 있습니다. 자세한 내용은 Docker 문서를 참조하세요.
  • Docker Hub 문서 읽어보기