Artifact Registry는 컨테이너 및 기타 형식을 지원하는 범용 패키지 관리 서비스입니다. 아티팩트를 보다 더 유연하게 제어하려면 Container Registry에서 전환에 대해 알아보세요.

이미지 가져오기 및 내보내기

이미지 내보내기(업로드) 및 가져오기(다운로드)는 가장 일반적인 두 가지 Container Registry 작업입니다.

이미지 나열, 태그 지정 및 삭제에 대한 안내는 이미지 관리를 참조하세요.

시작하기 전에

다음 사항을 확인하세요.

  1. 프로젝트에서 Container Registry를 사용 설정했는지 여부

  2. Docker를 설치하고 구성했는지 여부

  3. 이미지를 내보내고 가져올 수 있는 권한이 있는지 확인했는지 여부

이미지를 레지스트리로 내보내기

새 이미지를 Container Registry로 내보내려면 먼저 레지스트리 이름으로 태그를 지정한 다음 이미지를 내보내야 합니다.

멀티 리전 호스트로 내보내는 첫 번째 이미지는 Google Cloud 프로젝트에서 해당 호스트 이름의 스토리지 버킷을 만듭니다.

레지스트리 이름으로 로컬 이미지에 태그 지정하기

  1. 레지스트리 이름을 결정합니다.

    1. 이미지를 저장할 위치를 지정하는 호스트 이름을 선택합니다.

      • gcr.io는 이미지를 미국의 데이터 센터에서 호스팅하지만 나중에 위치가 변경될 수 있습니다.
      • us.gcr.io는 이미지를 미국의 데이터 센터에서, gcr.io에서 호스팅하는 이미지와 별도의 스토리지 버킷에 호스팅합니다.
      • eu.gcr.io는 유럽 연합 내 이미지를 호스팅합니다.
      • asia.gcr.io는 이미지를 아시아의 데이터 센터에서 호스팅합니다.

      이 위치는 Cloud Storage 스토리지 버킷의 멀티 리전에 해당합니다. 이미지를 새로운 호스트 이름으로 레지스트리에 내보내면 Container Registry는 지정된 멀티 리전에 스토리지 버킷을 만듭니다. 이 버킷은 레지스트리의 기본 스토리지입니다. 프로젝트 내에서 호스트 이름이 동일한 모든 레지스트리는 하나의 스토리지 버킷을 공유합니다.

      Console에서 이미지의 호스트 이름은 위치에 나열됩니다.

    2. 이미지 이름을 선택합니다. 로컬 머신의 이미지 이름과 다를 수도 있습니다.

    3. 호스트 이름, Google Cloud Console 프로젝트 ID, 이미지 이름을 결합합니다.

      HOSTNAME/PROJECT-ID/IMAGE
      

      프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.

  2. 다음 명령어를 이용해 레지스트리 이름으로 로컬 이미지에 태그를 지정합니다.

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE
    

    여기서 SOURCE_IMAGE는 로컬 이미지 이름 또는 이미지 ID입니다.

    이 명령어는 레지스트리 이름으로 이미지의 이름을 지정하고 latest 태그를 적용합니다. 다른 태그를 적용하려면 다음 명령어를 사용하세요.

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE:TAG
    

태그가 지정된 이미지를 Container Registry로 내보내기

Docker 사용자 인증 정보 도우미는 Container Registry로 직접 인증하도록 Docker를 구성하는 가장 간단한 방법입니다. 그런 다음 docker 명령어를 사용하여 이미지를 태그하고 내보내고 가져옵니다. 또는 클라이언트 라이브러리를 사용하여 컨테이너 이미지를 관리하거나, Docker API와 직접 상호작용할 수 있습니다.

다음 명령어를 이용해 태그가 지정된 이미지를 Container Registry로 내보냅니다.

docker push HOSTNAME/PROJECT-ID/IMAGE

이 명령어는 latest 태그가 있는 이미지를 내보냅니다. 다른 태그가 있는 이미지를 내보내려면 다음 명령어를 사용합니다.

docker push HOSTNAME/PROJECT-ID/IMAGE:TAG

이미지를 새로운 호스트 이름으로 레지스트리에 내보내면 Container Registry는 지정된 멀티 리전 위치에 스토리지 버킷을 만듭니다. 이미지를 내보낸 후에 다음 작업을 할 수 있습니다.

  • Cloud Console로 이동하여 레지스트리와 이미지를 봅니다.

  • gcloud container images list-tags를 실행하여 이미지의 태그와 자동 생성된 다이제스트를 확인합니다.

    gcloud container images list-tags HOSTNAME/PROJECT-ID/IMAGE
    

    명령어 결과는 다음과 비슷합니다.

    DIGEST        TAGS        TIMESTAMP
    44bde...      test        2017-..-..
    

이미지를 레지스트리에서 가져오기

Container Registry에서 이미지를 가져오려면 다음 명령어를 사용하세요.

docker pull HOSTNAME/PROJECT-ID/IMAGE:TAG

또는

docker pull HOSTNAME/PROJECT-ID/IMAGE@IMAGE_DIGEST

각 항목의 의미는 다음과 같습니다.

  • HOSTNAME은 Console의 위치에 나열됩니다. 4가지 옵션인 gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io 중 하나입니다.
  • HOSTNAME는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • IMAGE는 Container Registry에 있는 이미지의 이름입니다.
  • TAG는 이미지에 적용된 태그입니다. 레지스트리에서 태그는 이미지별로 고유합니다.
  • IMAGE_DIGEST는 이미지 콘텐츠의 sha256 해시 값입니다. Cloud Console에서 특정 이미지를 클릭하면 이미지의 메타데이터를 볼 수 있습니다. 다이제스트는 이미지 다이제스트로 나열됩니다.

특정 이미지에 대한 가져오기 명령어를 얻는 방법:

  1. 이미지 이름을 클릭해 특정 레지스트리로 이동합니다.

  2. 레지스트리에서, 가져올 이미지의 버전 옆에 있는 체크박스를 선택합니다.

  3. 페이지 상단에서 가져오기 명령어 표시를 클릭합니다.

  4. 태그나 다이제스트를 이용해 이미지를 식별하는 가져오기 명령어를 복사합니다.

다음 단계