이미지 관리

이 페이지에서는 Container Registry에서 호스팅되는 이미지를 관리하는 방법을 설명합니다. 저장소에 이미지 나열, 태그 추가, 태그 삭제, 새 저장소에 이미지 복사, 이미지 삭제 등이 대표적인 이미지 관리 작업입니다.

로컬 이미지를 Container Registry로 내보내려면 먼저 레지스트리 이름으로 이미지에 태그를 지정한 후 이미지를 내보내야 합니다. 자세한 내용은 이미지를 레지스트리로 내보내기를 참조하세요.

시작하기 전에

다음 사항을 확인하세요.

  1. gcloud 명령줄 도구가 포함된 최신 버전의 Cloud SDK를 설치했는지 여부

  2. Docker를 설치합니다.

  3. 작업할 레지스트리에 대한 액세스 권한이 있는지 여부

  4. gcloud를 사용자 인증 정보 도우미로 사용하도록 Docker를 구성했거나 다른 인증 방법을 사용하는지 여부 gcloud를 사용자 인증 정보 도우미로 사용하려면 다음 명령어를 실행하세요.

    gcloud auth configure-docker
        
  5. Docker를 사용하려면 사용자 인증 정보 도우미가 PATH 시스템에 있어야 합니다. 선택한 인증 정보 도우미인 gcloud 또는 docker-credential-gcrPATH 시스템에 있는지 확인합니다.

저장 위치를 기준으로 이미지 나열

Google Cloud Console 또는 명령줄을 사용하여 특정 호스트 위치의 이미지를 나열할 수 있습니다.

Console

특정 호스트 위치의 이미지를 나열하려면 다음 안내를 따르세요.

  1. Container Registry 페이지로 이동합니다.

    Container Registry 페이지 열기

  2. 이름 위에 있는 선택기를 사용하여 호스트 위치를 선택합니다. 옵션에는 모든 위치와 프로젝트가 현재 사용 중인 호스트 이름이 표시됩니다. 여기에는 gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io가 포함될 수 있습니다.

gcloud

호스트 위치 중 하나에 있는 이미지를 나열하려면 다음 명령어를 사용합니다.

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]
    

각 매개변수는 다음과 같습니다.

  • [HOSTNAME]은 Console의 Location에 나열됩니다. 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.

중첩된 레지스트리가 있으면 저장된 저장소 수준을 지정하여 중첩된 이미지를 나열합니다.

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]
    

여기서 [IMAGE]는 더 많은 이미지가 중첩되는 저장소를 말합니다.

gcloud container images list 문서도 참조하세요.

이미지 버전 나열

레지스트리에는 한 이미지의 다양한 버전이 포함될 수 있습니다. 이러한 버전은 동일한 이미지 이름을 가지며, 다이제스트와 태그로 식별됩니다.

Console

이미지의 다이제스트와 태그를 보려면 다음 단계를 따르세요.

  1. Container Registry 페이지로 이동합니다.

    Container Registry 페이지 열기

  2. 이미지 이름을 클릭하여 이미지의 버전을 확인합니다. 잘린 다이제스트는 이름 아래에 나열되고 태그는 태그 아래에 나열됩니다.

  3. 전체 다이제스트를 가져오려면 이미지의 버전을 클릭하여 메타데이터를 확인합니다. 다이제스트는 이미지 다이제스트라고 표시됩니다.

gcloud

이미지의 잘린 다이제스트와 태그를 나열하려면 다음 명령어를 실행합니다.

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

각 매개변수는 다음과 같습니다.

  • [HOSTNAME]은 Console의 Location에 나열됩니다. 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.
  • [IMAGE]는 Container Registry에 있는 이미지의 이름입니다.

특정 이미지 버전의 전체 다이제스트를 나열하려면 다음 명령어를 실행합니다.

gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]
    

gcloud container images list-tags 문서를 참조하세요.

이미지에 태그 지정

Google Cloud Console 또는 명령줄을 사용하여 이미지에 태그를 추가할 수 있습니다. 레지스트리에서 태그는 이미지 버전별로 고유합니다. 따라서 한 이미지의 버전이 여러 개라면 각 태그는 버전 중 하나에만 적용됩니다. 이미지에 이미 사용 중인 태그를 지정하면 태그는 원래 버전에서 새롭게 태그가 지정된 버전으로 이동합니다.

Console

Container Registry가 호스팅하는 이미지를 태그하려면 다음 단계를 따르세요.

  1. Container Registry 페이지로 이동합니다.

    Container Registry 페이지 열기

  2. 이미지 이름을 클릭하여 이미지의 버전을 확인합니다.

  3. 태그에서 수정 아이콘을 클릭합니다.

  4. 입력란에 새 태그를 입력하고 저장을 클릭합니다.

gcloud

Container Registry에서 호스팅하는 이미지에 태그를 지정하려면 gcloud container images add-tag 명령어를 사용하세요.

gcloud container images add-tag \
    [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
    [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]
    

또는

gcloud container images add-tag \
    [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
    [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]
    

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

  • [HOSTNAME]은 Console의 Location에 나열됩니다. 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.
  • [IMAGE]는 Container Registry에 있는 이미지의 이름입니다.
  • [TAG]는 이미지에 이미 적용된 태그입니다.
  • [IMAGE_DIGEST]는 이미지 콘텐츠의 sha256 해시 값입니다.
  • [NEW_TAG]는 이미지에 추가할 새 태그입니다.

이 명령어에 대한 자세한 내용은 gcloud container images add-tag를 참조하세요.

Container Registry에 호스팅할 로컬 이미지에 태그 지정

로컬 이미지를 Container Registry로 내보내려면 먼저 레지스트리 이름으로 이미지에 태그를 지정한 후 이미지를 내보내야 합니다. 자세한 내용은 이미지를 레지스트리로 내보내기를 참조하세요.

이미지 태그 해제

Google Cloud Console 또는 명령줄을 사용하여 Container Registry의 이미지에서 태그를 삭제할 수 있습니다.

Console

  1. Container Registry 페이지로 이동합니다.

    Container Registry 페이지 열기

  2. 이미지 이름을 클릭하여 이미지의 버전을 확인합니다.

  3. 태그에서 수정 아이콘을 클릭합니다.

  4. 태그를 삭제하고 저장을 클릭합니다.

gcloud

이미지에서 태그를 제거하려면 다음 명령어를 사용하세요.

gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
    

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

  • [HOSTNAME]은 Console의 Location에 나열됩니다. 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.
  • [IMAGE]는 Container Registry에 있는 이미지의 이름입니다.
  • [TAG]는 삭제할 태그입니다.

    이 명령어에 대한 자세한 내용은 gcloud container images untag를 참조하세요.

새로운 레지스트리에 이미지 복사

명령줄을 사용하여 특정 저장소의 이미지를 다른 저장소에 복사할 수 있습니다. 두 저장소 모두에 액세스할 수 있어야 합니다.

특정 저장소의 이미지를 다른 저장소에 복사하려면 gcloud container images add-tag 명령어를 사용하고 이동할 이미지를 이미지의 태그나

gcloud container images add-tag \
    [SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
    [DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]
    

다이제스트로 식별하세요.

gcloud container images add-tag \
    [SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
    [DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]
    

여기서 원본과 대상 모두에 있어

  • [HOSTNAME]은 이미지가 호스팅되는 위치로, 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.
  • [IMAGE]는 Container Registry에 있는 이미지의 이름입니다.
  • [IMAGE_DIGEST]는 이미지 콘텐츠의 sha256 해시 값입니다.
  • [TAG]는 이동할 소스 이미지를 식별하는 태그이거나 대상 저장소에 있는 이미지에 적용할 태그입니다.

예를 들어 빠른 시작 이미지를 다른 프로젝트의 저장소와 유럽 호스트에 복사하되 이미지 이름과 태그를 동일하게 유지하려면 다음 명령어를 사용해야 합니다.

gcloud container images add-tag \
    gcr.io/[PROJECT-ID]/quickstart-image:tag1 \
    eu.gcr.io/[OTHER-PROJECT-ID]/quickstart-image:tag1
    

여기서 [PROJECT-ID][OTHER-PROJECT-ID]는 복사 원본 프로젝트와 복사 대상 프로젝트의 Google Cloud Console 프로젝트 ID입니다. 두 프로젝트에서 모두 저장소에 액세스할 수 있어야 합니다. 프로젝트 ID 중 하나에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.

이 명령어에 대한 자세한 내용은 gcloud container images add-tag를 참조하세요.

이미지 삭제

Google Cloud Console 또는 명령줄을 사용하여 이미지를 삭제할 수 있습니다. 이미지 삭제는 취소할 수 없습니다.

Console

Container Registry 저장소에서 이미지를 삭제하려면 다음 단계를 따르세요.

  1. Container Registry 페이지로 이동합니다.

    Container Registry 페이지 열기

  2. 이미지 이름을 클릭하여 이미지의 버전을 확인합니다.

  3. 레지스트리에서 삭제할 이미지의 버전 옆에 있는 체크박스를 선택합니다.

  4. 페이지 상단에서 삭제를 클릭합니다.

  5. 저장소 항목 삭제 팝업에서 삭제를 클릭합니다.

gcloud

Container Registry 저장소 중 하나에서 이미지를 삭제하려면 다음 명령어 중 하나를 사용합니다.

  • 다이제스트로 식별하는 이미지:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
        
  • 태그로 식별하고 여러 태그가 있는 이미지:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
        

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

  • [HOSTNAME]은 Console의 Location에 나열됩니다. 4가지 옵션(gcr.io, us.gcr.io, eu.gcr.io 또는 asia.gcr.io) 중 하나입니다.
  • [PROJECT-ID]는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함된 경우 도메인 범위 프로젝트를 참조하세요.
  • [IMAGE]는 Container Registry에 있는 이미지의 이름입니다.
  • [IMAGE_DIGEST]는 이미지 콘텐츠의 sha256 해시 값입니다.
  • [TAG]는 삭제할 이미지의 태그입니다.

이 명령어에 대한 자세한 내용은 gcloud container images delete를 참조하세요.

다음 단계