イメージの管理

このページでは、Docker リポジトリでコンテナ イメージを管理する方法について説明します。イメージの管理には、リポジトリ内のイメージの一覧表示、タグの追加、タグの削除、新しいリポジトリへのイメージのコピー、イメージの削除が含まれます。

イメージの push と pull の詳細については、イメージの push と pull をご覧ください。

始める前に

  1. ターゲット リポジトリが存在しない場合は、新しいリポジトリを作成します
  2. リポジトリに必要な権限を付与されていることを確認します。
  3. (省略可)gcloud コマンドのデフォルトを構成します

イメージのリストを表示する

イメージを一覧表示するには、Google Cloud Console またはコマンドラインを使用します。

リポジトリ リストには、Artifact Registry と Container Registry の両方のリポジトリが含まれています。Container Registry リポジトリ内のイメージを操作する方法については、イメージの管理に関する Container Registry のドキュメントをご覧ください。

コンソール

イメージまたはイメージのバージョンの一覧を表示するには:

  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 リポジトリ内の既存のイメージをタグ付けするか、リポジトリに push する前にタグ付けできます。

リポジトリ内のイメージにタグを付ける

Google Cloud Console またはコマンドラインを使用して、Artifact Registry リポジトリ内のイメージにタグを追加できます。リポジトリでは、タグはイメージのバージョンに固有です。したがって、複数のバージョンのイメージを使用している場合、各タグは 1 つのバージョンにのみ適用されます。すでに使用されているタグでイメージにタグを付けると、元のバージョンから新しくタグ付けされたバージョンにタグが移動します。

コンソール

リポジトリ内の既存のイメージにタグを付けるには:

  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 に push するには、最初にリポジトリ名を使用してタグ付けしてからイメージを push する必要があります。手順については、push と pull をご覧ください。

イメージのタグを外す

Artifact Registry 内のイメージからタグを削除するには、Google Cloud 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 ツールからイメージを削除するには:

コンソール

  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 は、イメージ バージョンに適用されているすべてのタグを削除します。このフラグを使用すると、次の場合にイメージ バージョンを自動削除できます。
    • タグは指定したものの、イメージ バージョンに関連付けられた他のタグが存在する。
    • 少なくとも 1 つのタグを含むイメージ ダイジェストを指定した。