이미지 내보내기(업로드) 및 가져오기(다운로드)는 가장 일반적인 두 가지 Container Registry 작업입니다.
이미지 나열, 태그 지정 및 삭제에 대한 안내는 이미지 관리를 참조하세요.
시작하기 전에
다음 사항을 확인하세요.
프로젝트에서 Container Registry를 사용 설정했는지 여부
Docker를 설치하고 구성했는지 여부
이미지를 내보내고 가져올 수 있는 권한이 있는지 확인했는지 여부
이미지를 레지스트리로 내보내기
새 이미지를 Container Registry로 내보내려면 먼저 레지스트리 이름으로 태그를 지정한 다음 이미지를 내보내야 합니다.
멀티 리전 호스트로 내보내는 첫 번째 이미지는 Google Cloud 프로젝트에서 해당 호스트 이름의 스토리지 버킷을 만듭니다.
레지스트리 이름으로 로컬 이미지에 태그 지정하기
레지스트리 이름을 결정합니다.
이미지를 저장할 위치를 지정하는 호스트 이름을 선택합니다.
gcr.io
는 이미지를 미국의 데이터 센터에서 호스팅하지만 나중에 위치가 변경될 수 있습니다.us.gcr.io
는 이미지를 미국의 데이터 센터에서,gcr.io
에서 호스팅하는 이미지와 별도의 스토리지 버킷에 호스팅합니다.eu.gcr.io
는 유럽 연합 내 이미지를 호스팅합니다.asia.gcr.io
는 이미지를 아시아의 데이터 센터에서 호스팅합니다.
이 위치는 Cloud Storage 스토리지 버킷의 멀티 리전에 해당합니다. 이미지를 새로운 호스트 이름으로 레지스트리에 내보내면 Container Registry는 지정된 멀티 리전에 스토리지 버킷을 만듭니다. 이 버킷은 레지스트리의 기본 스토리지입니다. 프로젝트 내에서 호스트 이름이 동일한 모든 레지스트리는 하나의 스토리지 버킷을 공유합니다.
Console에서 이미지의 호스트 이름은 위치에 나열됩니다.
이미지 이름을 선택합니다. 로컬 머신의 이미지 이름과 다를 수도 있습니다.
호스트 이름, Google Cloud Console 프로젝트 ID, 이미지 이름을 결합합니다.
HOSTNAME/PROJECT-ID/IMAGE
프로젝트 ID에 콜론(
:
)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
다음 명령어를 이용해 레지스트리 이름으로 로컬 이미지에 태그를 지정합니다.
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에서 특정 이미지를 클릭하면 이미지의 메타데이터를 볼 수 있습니다. 다이제스트는 이미지 다이제스트로 나열됩니다.
특정 이미지에 대한 가져오기 명령어를 얻는 방법:
이미지 이름을 클릭해 특정 레지스트리로 이동합니다.
레지스트리에서, 가져올 이미지의 버전 옆에 있는 체크박스를 선택합니다.
페이지 상단에서 가져오기 명령어 표시를 클릭합니다.
태그나 다이제스트를 이용해 이미지를 식별하는 가져오기 명령어를 복사합니다.
다음 단계
- 태그 추가/제거 및 이미지 삭제 같은 이미지 관리 방법 알아보기
- 액세스 제어 구성에 대해 알아보기
- Container Registry의 구성요소와 기능에 대해 자세히 알아보기
- Compute Engine에서 컨테이너를 실행하려는 경우 Compute Engine의 컨테이너에 대해 알아보기