イメージの管理

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

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

始める前に

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

画像の一覧表示

イメージを一覧表示するには、Google Cloud Console または gcloud CLI を使用します。

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

Console

リポジトリ内のイメージを表示するには:

  1. Google Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. コンテナ イメージを含むリポジトリをクリックします。

  3. イメージをクリックしてバージョンを表示します。

gcloud

デフォルト値が構成されているときに、デフォルトのプロジェクト、リポジトリ、ロケーション内のすべてのイメージを一覧表示するには:

gcloud artifacts docker images list

リポジトリ内の特定のロケーションにあるイメージを一覧表示するには、次のコマンドを実行します。

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

特定のイメージのダイジェストとタグを一覧表示するには、次のコマンドを実行します。

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

次の値を置き換えます。

  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
  • PROJECT は、Google Cloud プロジェクト 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

イメージ名の形式の詳細については、リポジトリとイメージの名前をご覧ください。

ファイルを一覧表示する

リポジトリ内のファイル、指定されたコンテナ イメージのすべてのバージョンのファイル、または特定のバージョンのイメージのファイルを表示できます。

次のコマンドで --limit フラグを追加すると、返されるファイルの最大数を設定できます。

デフォルト値が構成されているときに、デフォルトのプロジェクト、リポジトリ、ロケーション内のすべてのファイルを一覧表示するには:

gcloud artifacts files list

指定したプロジェクト、リポジトリ、ロケーション内のファイルを一覧表示するには、次のコマンドを実行します。

gcloud artifacts files list
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

特定のコンテナ イメージのすべてのバージョンのファイルを一覧表示するには:

gcloud artifacts files list
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

特定のコンテナ イメージ バージョンのファイルを一覧表示するには:

gcloud artifacts files list
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
特定のタグのファイルを一覧表示するには:

gcloud artifacts files list
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

次の値を置き換えます。

  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
  • PROJECT は、Google Cloud プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • REPOSITORY は、イメージが格納されているリポジトリの名前です。
  • PACKAGE は、イメージ名です。
  • VERSION はイメージ ダイジェストで、sha256: で始まる文字列です。
  • TAG は、コンテナ イメージに関連付けられたタグです。

Examples

次の画像情報について考えてみます。

  • プロジェクト: my-project
  • リポジトリ: my-repo
  • リポジトリの場所: us-central1
  • 画像: my-app

次のコマンドは、デフォルト プロジェクト内のロケーション us-central1 にあるリポジトリ my-repo 内のすべてのファイルを一覧表示します。

gcloud artifacts files list
    --location=us-central1 \
    --repository=my-repo \
次のコマンドは、ダイジェスト sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356 が含まれるイメージのバージョンのファイルを一覧表示します

gcloud artifacts files list
    --project=my-project \
    --location=us-central1 \
    --repository=my-repo \
    --package=my-app \ --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
次のコマンドは、タグ 1.0-dev が付いたイメージのバージョンのファイルを一覧表示します

gcloud artifacts files list
    --project=my-project \
    --location=us-central1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

イメージにタグを付ける

既存のイメージを Artifact Registry リポジトリにタグ付けするか、リポジトリに push する前にタグ付けできます。

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

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

Console

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

  1. Google 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 をご覧ください。

イメージのタグを外す

Google Cloud Console またはコマンドラインを使用して、Artifact Registry 内のイメージからタグを削除できます。

Console

  1. Google Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. イメージをクリックすると、そのイメージのバージョンが表示されます。

  3. タグ付けを解除するイメージ バージョンを選択します。

  4. 選択したバージョンの行で [その他の操作](その他の操作)をクリックし、[タグを編集] をクリックします。

  5. タグを削除して [保存] をクリックします。

gcloud

タグを削除してイメージから削除するには、次のコマンドを実行します。

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

場所

  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
  • PROJECT は、Google Cloud プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • REPOSITORY は、イメージが保存されるリポジトリの名前です。
  • IMAGE は、リポジトリ内のイメージの名前です。
  • TAG は、削除するバージョンのタグです。

イメージの削除

コンテナ イメージ全体を削除するか、タグまたはダイジェストに関連付けられている特定のイメージ バージョンを削除することができます。イメージを削除すると、操作を元に戻すことはできません。

未使用のイメージの管理に役立つその他のツールもあります。たとえば、gcr-cleaner ツールは、さまざまな基準に基き、古いイメージを見つけて削除します。未使用のイメージを削除すると、ストレージ コストを削減できます。gcr-cleaner ツールは Google の公式プロダクトではありません。

Google Cloud Console または gcloud CLI からイメージを削除するには:

Console

  1. Google 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@IMAGE-DIGEST [--delete-tags]

場所

  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
  • PROJECT は、Google Cloud プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • REPOSITORY は、イメージが保存されるリポジトリの名前です。
  • IMAGE は、リポジトリ内のイメージの名前です。
  • TAG は、削除するバージョンのタグです。複数のタグが同じイメージ バージョンに関連付けられている場合、先にタグを削除せずにイメージ バージョンを削除するには、--delete-tags を含める必要があります。
  • IMAGE-DIGEST は、削除するバージョンの sha256 ハッシュ値です。タグがイメージ ダイジェストに関連付けられている場合は、最初にタグを削除せずにイメージ バージョンを削除するには、--delete-tags を含める必要があります。
  • --delete-tags は、イメージ バージョンに適用されているすべてのタグを削除します。このフラグを使用すると、次の場合にイメージ バージョンを自動的に削除できます。
    • タグは指定したものの、イメージ バージョンに関連付けられた他のタグが存在する。
    • 少なくとも 1 つのタグを含むイメージ ダイジェストを指定した。