このページでは、Docker リポジトリでコンテナ イメージを管理する方法について説明します。イメージの管理には、リポジトリ内のイメージの一覧表示、タグの追加、タグの削除、新しいリポジトリへのイメージのコピー、イメージの削除が含まれます。
イメージの push と pull の詳細については、イメージの push と pull をご覧ください。
始める前に
- ターゲット リポジトリが存在しない場合は、新しいリポジトリを作成します。
- リポジトリに必要な権限を付与されていることを確認します。
- (省略可)gcloud コマンドのデフォルトを構成します。
イメージのリストを表示する
イメージを一覧表示するには、Google Cloud Console またはコマンドラインを使用します。
リポジトリ リストには、Artifact Registry と Container Registry の両方のリポジトリが含まれています。Container Registry リポジトリ内のイメージを操作する方法については、イメージの管理に関する Container Registry のドキュメントをご覧ください。
コンソール
イメージまたはイメージのバージョンの一覧を表示するには:
Cloud Console で [リポジトリ] ページを開きます。
イメージを含むリポジトリをクリックします。
イメージをクリックして、イメージのバージョン(ダイジェストとタグを含む)を表示します。
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 リポジトリ内の既存のイメージをタグ付けするか、リポジトリに push する前にタグ付けできます。
リポジトリ内のイメージにタグを付ける
Google Cloud Console またはコマンドラインを使用して、Artifact Registry リポジトリ内のイメージにタグを追加できます。リポジトリでは、タグはイメージのバージョンに固有です。したがって、複数のバージョンのイメージを使用している場合、各タグは 1 つのバージョンにのみ適用されます。すでに使用されているタグでイメージにタグを付けると、元のバージョンから新しくタグ付けされたバージョンにタグが移動します。
コンソール
リポジトリ内の既存のイメージにタグを付けるには:
Cloud Console で [リポジトリ] ページを開きます。
イメージをクリックすると、イメージのバージョンが表示されます。
タグを付けるイメージのバージョンを選択します。
選択したバージョンの行で、[その他の操作](
)、[タグを編集] の順にクリックします。
フィールドに新しいタグを入力し、[保存] をクリックします。
gcloud
リポジトリ内の既存のイメージにタグを付けるには、イメージ ダイジェストまたはタグを使用してイメージ バージョンを指定し、追加するタグを指定します。次のいずれかのコマンドを実行します。
gcloud artifacts docker tags add 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 に push するには、最初にリポジトリ名を使用してタグ付けしてからイメージを push する必要があります。手順については、push と pull をご覧ください。
イメージのタグを外す
Artifact Registry 内のイメージからタグを削除するには、Google Cloud Console またはコマンドラインを使用します。
コンソール
Cloud Console で [リポジトリ] ページを開きます。
イメージをクリックすると、イメージのバージョンが表示されます。
タグ付けを解除するイメージのバージョンを選択します。
選択したバージョンの行で、[その他の操作](
)、[タグを編集] の順にクリックします。
タグを削除して [保存] をクリックします。
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
ツールからイメージを削除するには:
コンソール
Cloud Console で [リポジトリ] ページを開きます。
イメージ名をクリックすると、そのイメージのバージョンが表示されます。
削除するバージョンを選択します。
[削除] をクリックします。
確認のダイアログ ボックスで、[削除] をクリックします。
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
は、イメージ バージョンに適用されているすべてのタグを削除します。このフラグを使用すると、次の場合にイメージ バージョンを自動削除できます。- タグは指定したものの、イメージ バージョンに関連付けられた他のタグが存在する。
- 少なくとも 1 つのタグを含むイメージ ダイジェストを指定した。