저장소 및 이미지 이름

Artifact Registry는 API, gcloud, docker 명령어를 사용하여 저장소와 상호작용할 때 이름 지정 규칙을 통해 저장소와 이미지를 식별합니다.

Docker 저장소

Docker 저장소의 전체 이름은 다음 형식입니다.

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

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

  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
  • PROJECT는 Google Cloud 콘솔 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY는 저장소 이름입니다.

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

  • 저장소 위치: us-west1
  • 저장소 형식: docker
  • 저장소 이름: my-repo
  • 프로젝트 ID: my-project

저장소는 다음과 같이 지정됩니다.

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

컨테이너 이미지 이름

컨테이너 이미지의 전체 이름은 다음 형식 중 하나입니다.

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

또는

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

또는

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

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

  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.
  • PROJECT는 Google Cloud 콘솔 프로젝트 ID입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY는 이미지가 저장된 저장소의 이름입니다.
  • IMAGE는 저장소의 이미지 이름입니다.
  • TAG는 가져올 이미지 버전의 태그입니다.
  • IMAGE-DIGEST는 이미지 콘텐츠의 sha256 해시 값입니다. Google Cloud 콘솔에서 특정 이미지를 클릭하면 이미지의 메타데이터를 볼 수 있습니다. 다이제스트는 이미지 다이제스트로 표시됩니다. 태그 또는 다이제스트를 지정하지 않으면 Artifact Registry가 기본 태그 latest가 있는 이미지를 찾습니다. 버전에 대한 자세한 내용은 컨테이너 이미지 버전을 참고하세요.

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

  • 저장소 위치: us-west1
  • 저장소 이름: my-repo
  • 프로젝트 ID: my-project
  • 이미지 이름: test
  • 태그: staging

스테이징으로 태그가 지정된 이 이미지 버전은 다음과 같이 지정됩니다.

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

컨테이너 이미지 버전

저장소는 여러 컨테이너 이미지를 포함할 수 있으며, 이러한 이미지는 다양한 버전으로 구성될 수 있습니다. 이미지의 특정 버전을 식별하려면 이미지 다이제스트 또는 태그를 지정하면 됩니다.

다이제스트
이미지 다이제스트는 이미지 색인이나 이미지 매니페스트의 자동으로 생성되는 해시입니다. 각 이미지 다이제스트는 이미지 버전의 고유 식별자이며 변경할 수 없습니다. 다이제스트는 이미지 콘텐츠의 sha256 해시 값입니다.
태그

이미지 태그는 라벨이며 주로 v1.1 또는 development와 같이 인간이 읽을 수 있는 문자열입니다. 태그는 한 이미지에서 1개의 버전만 가리킬 수 있습니다. Artifact Registry에서 Docker 저장소를 구성하여 변경 가능 이미지 태그를 허용하거나 변경할 수 없는 태그를 적용할 수 있습니다.

  • 변경 가능: 태그는 한 버전의 이미지만 가리키지만 참조하는 특정 다이제스트는 변경될 수 있습니다.

    일반적인 방법은 빌드 시 v1.1와 같은 버전 식별자로 이미지를 태그하는 것입니다. 빌드가 동일한 v1.1 태그를 사용하여 여러 버전의 이미지를 레지스트리에 푸시할 때 태그는 레지스트리에 푸시된 마지막 버전의 다이제스트를 참조합니다. 변경 가능한 이미지 태그는 버전에 라벨을 지정하는 편리한 방법을 제공하지만 악의적인 행위자가 태그를 조작하여 이미지의 악성 버전과 연결할 수도 있습니다.

  • 변경 불가: 저장소에서 태그가 항상 같은 이미지 다이제스트를 가리킵니다. Artifact Registry 저장소가 변경할 수 없는 이미지 태그에 구성된 경우 다음 작업은 허용되지 않습니다.

    • 태그가 지정된 이미지 삭제 태그가 지정되지 않은 이미지는 계속 삭제할 수 있습니다.
    • 이미지에서 태그 삭제
    • 저장소에 있는 다른 버전의 이미지에서 이미 사용 중인 태그로 이미지를 푸시합니다.

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

  • 저장소 위치: us-west1
  • 저장소 이름: my-repo
  • 프로젝트 ID: my-project
  • 이미지 이름: test
  • 태그: staging
  • 다이제스트: sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

태그로 이미지를 식별하려면 이미지 이름에 :staging를 추가합니다.

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

다이제스트로 식별하려면 이미지 이름에 @을 추가하고 그 뒤에 다이제스트를 추가합니다.

us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
프로젝트 ID에 콜론 (:)이 포함되어 있으면 도메인 범위 프로젝트를 참고하세요.

콘솔에서 이미지 화면의 태그 열에는 이미지의 태그가 나열됩니다. 이미지 다이제스트를 포함한 메타데이터를 확인하려면 이미지의 버전을 클릭하세요.

태그 지정에 대한 자세한 내용은 이미지에 태그 지정을 참조하세요.

도메인 범위 프로젝트

프로젝트 범위가 도메인인 경우 프로젝트 ID의 도메인 이름 뒤에 콜론(:)이 포함됩니다. Docker가 콜론을 처리하는 방법으로 인해 Artifact Registry에서 이미지 다이제스트를 지정할 때 콜론 문자를 슬래시로 바꾸어야 합니다. 다음 형식을 사용하여 이러한 유형의 프로젝트에서 이미지를 식별합니다.

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

예를 들어 ID가 example.com:my-project인 프로젝트는 다음 이미지를 포함할 수 있습니다.

us-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name

URL 형식의 저장소 이름

Google Cloud 콘솔의 저장소 또는 아티팩트에 액세스하려면 전체 이름 앞에 https://를 추가합니다.

예를 들어 us-west1-maven.pkg.dev/my-project/my-repo 저장소를 보려면 다음 URL을 사용하세요.

https://us-west1-maven.pkg.dev/my-project/my-repo

us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image 이미지를 보려면 다음 URL을 사용하세요.

https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image

저장소에 액세스할 수 있는 권한이 있는 인증된 사용자는 이 링크를 사용할 수 있습니다.