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
は、pull するイメージ バージョンのタグです。IMAGE-DIGEST
は、イメージ コンテンツの sha256 ハッシュ値です。Google Cloud コンソールで、メタデータを表示する特定のイメージをクリックします。ダイジェストはイメージのダイジェストとして一覧表示されます。タグまたはダイジェストを指定しなかった場合、Artifact Registry はデフォルトのタグlatest
が付いたイメージを探します。バージョンの詳細については、コンテナ イメージのバージョンをご覧ください。
たとえば、次のような特性を持つイメージについて考えてみましょう。
- リポジトリの場所:
us-west1
- リポジトリ名:
my-repo
- プロジェクト ID:
my-project
- イメージ名:
test
- タグ:
staging
staging というタグが付けられたこのバージョンのイメージは、次のように指定されます。
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
コンテナ イメージ バージョン
リポジトリには多くのコンテナ イメージを含めることができ、これらのイメージはさまざまなバージョンを持つことができます。イメージの特定のバージョンを識別するには、イメージのダイジェストまたはタグを指定します。
- ダイジェスト
- イメージ ダイジェストは、イメージ インデックスまたはイメージ マニフェストの自動生成ハッシュです。各イメージ ダイジェストはイメージ バージョンの一意の識別子であり、変更できません。ダイジェストは、イメージ コンテンツの sha256 ハッシュ値です。
- タグ
イメージタグはラベルであり、多くの場合、
v1.1
やdevelopment
といった人が読める文字列です。1 つのタグで指定できるのは 1 つのバージョンのイメージのみです。Artifact Registry では、変更可能なイメージタグを許可するように Docker リポジトリを構成できます。また、不変のイメージタグを適用することもできます。変更可能: タグは 1 つのイメージ バージョンのみを指しますが、参照する特定のダイジェストは変更できます。
通常は、ビルド時に
v1.1
などのバージョン ID でイメージにタグを付けます。ビルドにより複数のバージョンのイメージが同じv1.1
タグを持つレジストリに push されると、タグはレジストリに push された最後のバージョンのダイジェストを参照します。変更可能なイメージタグはバージョンにラベルを付けるための便利な方法ですが、不正な行為者によってタグを悪意のあるバージョンのイメージに関連付けるように操作される可能性もあります。不変: リポジトリでは、タグは常に同じイメージ ダイジェストを指します。Artifact Registry リポジトリが不変のイメージタグ用に構成されている場合、次の操作は許可されません。
- タグ付きイメージを削除する。タグ付けされていないイメージの削除はこれまで通り可能です。
- タグをイメージから削除する。
- リポジトリ内の別のバージョンのイメージですでに使用されているタグを使用してイメージを push する。
たとえば、次のような特性を持つイメージについて考えてみましょう。
- リポジトリの場所:
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
:
)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
Console の [イメージ] 画面で、[タグ] 列にイメージのタグが一覧表示されます。イメージのバージョンをクリックすると、メタデータ(イメージ ダイジェストを含む)が表示されます。
タグ付けの詳細については、イメージにタグを付けるをご覧ください。
ドメインをスコープとするプロジェクト
プロジェクトのスコープがドメインに設定されている場合、プロジェクト 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
リポジトリへのアクセス権限を持つ認証済みのユーザーであれば、これらのリンクを使用できます。