이미지 관리

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

이미지 내보내기 및 가져오기에 대한 자세한 내용은 이미지 내보내기 및 가져오기를 참조하세요.

시작하기 전에

  1. 대상 저장소가 없으면 새 저장소를 만듭니다.
  2. 저장소에 필요한 권한이 있는지 확인합니다.
  3. (선택사항) gcloud 명령어의 기본값을 구성합니다.

이미지 나열

Google Cloud Console 또는 명령줄을 사용하여 이미지를 나열할 수 있습니다.

저장소 목록에는 Artifact Registry 및 Container Registry 저장소가 모두 포함됩니다. Container Registry 저장소의 이미지 작업을 하려면 Container Registry 문서에서 이미지 관리를 참조하세요.

Console

이미지 또는 이미지 버전 목록을 보려면 다음 안내를 따르세요.

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 이미지가 포함된 저장소를 클릭합니다.

  3. 이미지를 클릭하여 다이제스트와 태그를 포함한 이미지 버전을 확인합니다.

gcloud

기본값이 구성된 경우 기본 프로젝트, 저장소, 위치의 모든 이미지를 나열하려면 다음 안내를 따르세요.

gcloud artifacts docker images list [--include-tags]
 

특정 위치에 있는 저장소의 모든 이미지를 나열하려면 다음 명령어를 실행합니다.

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY [--include-tags]
 

특정 이미지의 모든 다이제스트 및 태그를 나열하려면 다음 명령어를 실행합니다.

 gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE [--include-tags]
 

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

  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
  • PROJECT는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY은 이미지가 저장된 저장소의 이름입니다.
  • IMAGE은 저장소에 있는 이미지의 이름입니다.
  • --include-tags은 다이제스트와 태그를 포함한 모든 버전의 이미지를 표시합니다. 이 플래그가 없으면 반환된 목록에 최상위 컨테이너 이미지만 포함됩니다.

예를 들어 다음과 같은 특성을 지닌 이미지라고 가정해 보겠습니다.

  • 저장소 위치: us
  • 저장소 이름: my-repo
  • 프로젝트 ID: my-project
  • 이미지 이름: my-image

이 전체 저장소 이름은 다음과 같습니다.

us-docker.pkg.dev/my-project/my-repo

이 전체 이미지 이름은 다음과 같습니다.

us-docker.pkg.dev/my-project/my-repo/my-image

도메인 범위 프로젝트 처리를 포함한 이미지 이름 형식에 대한 자세한 내용은 저장소 및 이미지 이름을 참조하세요.

이미지에 태그 지정

Artifact Registry 저장소의 기존 이미지에 태그를 지정하거나 이미지를 저장소로 내보내기 전에 태그를 지정할 수 있습니다.

저장소에서 이미지 태그하기

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

Console

저장소의 기존 이미지를 태그하려면 다음 안내를 따르세요.

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

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

  3. 태그를 지정할 이미지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

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

gcloud

저장소의 기존 이미지를 태그하려면 이미지 다이제스트 또는 태그를 사용하여 이미지 버전을 지정한 다음 추가할 태그를 지정합니다. 다음 명령어 중 하나를 실행합니다.

gcloud artifacts docker tags add IMAGE-VERSION TAG

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

  • IMAGE-VERSION은 이미지 다이제스트 또는 이미지 버전의 기존 태그를 사용하여 태그할 이미지 버전의 전체 이름입니다.
  • TAG은 추가할 태그의 전체 이름입니다.

예를 들어 다음과 같은 특성을 지닌 이미지라고 가정해 보겠습니다.

  • 저장소 위치: us
  • 저장소 이름: my-repo
  • 프로젝트 ID: my-project
  • 이미지 이름: my-image
  • 기존 태그: iteration6-final
  • 추가할 태그: release-candidate

iteration6-final 태그를 사용하여 이미지 버전에 release-candidate 태그를 추가하려면 다음 명령어를 실행합니다.

gcloud artifacts docker tags add \
us-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

도메인 범위 프로젝트 처리를 포함한 이미지 이름 형식에 대한 자세한 내용은 저장소 및 이미지 이름을 참조하세요.

로컬 이미지 태그하기

새 이미지를 Artifact Registry로 내보내려면 먼저 저장소 이름으로 태그를 지정한 다음 이미지를 내보내야 합니다. 자세한 내용은 내보내기 및 가져오기를 참조하세요.

이미지 태그 해제

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

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

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

  3. 태그 해제할 이미지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

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

gcloud

태그를 삭제하고 이미지에서 삭제하려면 다음 명령어를 실행합니다.

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
 

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

  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
  • PROJECT는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY은 이미지가 저장된 저장소의 이름입니다.
  • IMAGE은 저장소에 있는 이미지의 이름입니다.
  • TAG은 삭제할 버전의 태그입니다.

이미지 삭제

전체 컨테이너 이미지를 삭제하거나 태그 또는 다이제스트와 연결된 특정 이미지 버전을 삭제할 수 있습니다. 이미지를 삭제한 후에는 작업을 실행취소할 수 없습니다.

사용하지 않는 이미지를 관리하는 데 도움이 되는 다른 도구도 있습니다. 예를 들어 gcr-cleaner 도구는 다양한 기준에 따라 이전 이미지를 찾고 삭제합니다. 사용하지 않는 이미지를 삭제하면 스토리지 비용을 줄이는 데 도움이 됩니다. gcr-cleaner 도구는 공식 Google 제품이 아닙니다.

Google Cloud Console 또는 gcloud 도구에서 이미지를 삭제하려면 다음 안내를 따르세요.

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

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

  3. 삭제할 버전을 선택합니다.

  4. 삭제를 클릭합니다.

  5. 확인 대화상자에서 삭제를 클릭합니다.

gcloud

이미지와 이미지의 모든 태그를 삭제하려면 다음 명령어를 실행합니다.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

특정 이미지 버전을 삭제하려면 다음 명령어 중 하나를 사용합니다.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]
또는
gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@DIGEST [--delete-tags]

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

  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
  • PROJECT는 Google Cloud Console 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY은 이미지가 저장된 저장소의 이름입니다.
  • IMAGE은 저장소에 있는 이미지의 이름입니다.
  • TAG은 삭제할 버전의 태그입니다. 여러 태그가 동일한 이미지 버전과 연결되어 있는 경우 먼저 태그를 삭제하지 않고 이미지 버전을 삭제하기 위해 --delete-tags를 포함해야 합니다.
  • IMAGE-DIGEST은 삭제할 버전의 sha256 해시 값입니다. 태그가 이미지 다이제스트와 연결된 경우 먼저 태그를 삭제하지 않고 이미지 버전을 삭제하기 위해 --delete-tags를 포함해야 합니다.
  • --delete-tags는 이미지 버전에 적용된 모든 태그를 삭제합니다. 이 플래그를 사용하면 다음과 같은 경우에 이미지 버전을 강제로 삭제할 수 있습니다.
    • 태그를 지정했지만 이미지 버전과 연결된 다른 태그가 있습니다.
    • 하나 이상의 태그가 있는 이미지 다이제스트를 지정했습니다.