イメージの管理

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

ローカル イメージを Container Registry に push するには、最初にレジストリ名にタグ付けしてからイメージを push する必要があります。手順については、イメージをレジストリに push するをご覧ください。

はじめに

次のことを確認してください。

  1. Cloud SDK の最新バージョンをインストールしておくこと。これには gcloud コマンドライン ツールが含まれています。

  2. Docker をインストールしておくこと。

  3. 作業対象のレジストリへのアクセス権があること。

  4. gcloud を認証ヘルパーとして使用するか、別の認証方法を使用するように Docker を構成していること。gcloud を認証ヘルパーとして使用するには、次のコマンドを実行します。

    gcloud auth configure-docker
    

ストレージの場所ごとのイメージの一覧表示

Google Cloud Platform Console またはコマンドラインを使用して、特定のホストの場所にイメージを一覧表示できます。

Console

いずれかのホストの場所にイメージを表示するには:

  1. GCP Console のリポジトリのリストに移動します。
  2. [名前] の上のセレクタを使用して、ホストの場所を選択します。オプションには、[すべての場所]、プロジェクトで現在使用しているホストの名前(.gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io)があります。

gcloud

いずれかのホストの場所にあるイメージを一覧表示するには、次のコマンドを使用します。

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]

ここで

  • [HOSTNAME] は、コンソールで [場所] の下に表示されます。4 つのオプション、gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

ネストされたレジストリがある場合、ネストされたイメージを一覧表示するには、格納されているリポジトリ レベルを指定します。

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]

ここで、[IMAGE] は、さらに多くのイメージがネストされているリポジトリです。

また、gcloud container images list のドキュメントもご覧ください。

イメージのバージョンの一覧表示

レジストリにはさまざまなバージョンのイメージが含まれている可能性があります。こうしたバージョンには同じイメージ名があり、ダイジェストとタグで識別されます。

Console

イメージのダイジェストとタグを表示するには:

  1. リポジトリのリストからイメージ名をクリックすると、そのイメージのバージョンが表示されます。切り捨てられたダイジェストは [名前] に一覧表示され、タグは [タグ] の下に一覧表示されます。

  2. 完全なダイジェストを取得するには、イメージのバージョンをクリックしてそのメタデータを表示します。ダイジェストはイメージのダイジェストと呼ばれます。

gcloud

イメージの切り捨てられたダイジェストとタグを表示するには、次のコマンドを実行します。

gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]

ここで

  • [HOSTNAME] は、コンソールで [場所] の下に表示されます。4 つのオプション、gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • [IMAGE] は、Container Registry 内のイメージ名です。

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

gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]

gcloud container images list-tags のドキュメントをご覧ください。

イメージにタグを付ける

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

Console

Container Registry でホストされているイメージにタグを付けるには:

  1. リポジトリのリストからイメージ名をクリックすると、そのイメージのバージョンが表示されます。
  2. [タグ] で、編集アイコンをクリックします。
  3. フィールドに新しいタグを入力し、[保存] をクリックします。

gcloud

Container Registry でホストされるイメージにタグを付けるには、gcloud container images add-tag コマンドを使用します。

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

または

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

ここで

  • [HOSTNAME] は、コンソールで [場所] の下に表示されます。4 つのオプション、gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • [IMAGE] は、Container Registry 内のイメージ名です。
  • [TAG] はすでにイメージに適用されているタグです。
  • [IMAGE_DIGEST] は、イメージ コンテンツの sha256 ハッシュ値です。
  • [NEW_TAG] はイメージに追加する新しいタグです。

このコマンドの詳細については、gcloud container images add-tag をご覧ください。

ローカル イメージに Container Registry でホストするためのタグを付ける

ローカル イメージを Container Registry に push するには、最初にレジストリ名にタグ付けしてからイメージを push する必要があります。手順については、イメージをレジストリに push するをご覧ください。

イメージのタグを外す

Container Registry でイメージからタグを削除するには、Google Cloud Platform Console またはコマンドライン ツールを使用します。

Console

  1. リポジトリのリストからイメージ名をクリックすると、そのイメージのバージョンが表示されます。
  2. [タグ] で、編集アイコンをクリックします。
  3. タグを削除して [保存] をクリックします。

gcloud

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

gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

ここで

  • [HOSTNAME] は、コンソールで [場所] の下に表示されます。4 つのオプション、gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • [IMAGE] は、Container Registry 内のイメージ名です。
  • [TAG] は削除するタグです。

    このコマンドの詳細については、gcloud container images untag をご覧ください。

イメージを新しいレジストリにコピーする

コマンドラインを使用して、1 つのリポジトリから別のリポジトリにイメージをコピーできます。その際、両方のリポジトリにアクセスできる必要があります。

1 つのリポジトリから別のリポジトリにイメージをコピーするには、gcloud container images add-tag コマンドを使用して、タグによって移動するイメージを特定します。

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

またはダイジェストによって移動するイメージを指定します。

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

ここで、移動元と移動先の両方で

  • [HOSTNAME] はイメージがホストされている場所で、4 つのオプション、gcr.ious.gcr.ioeu.gcr.io、または asia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • [IMAGE] は、Container Registry 内のイメージ名です。
  • [IMAGE_DIGEST] は、イメージ コンテンツの sha256 ハッシュ値です。
  • [TAG] は、移動するソースイメージを識別するタグ、または移動先リポジトリのイメージに適用するタグです。

たとえば、クイックスタート イメージを別のプロジェクトのリポジトリとヨーロッパのホストにコピーするものの、イメージ名とタグを同じにする場合は、以下を使用します。

gcloud container images add-tag \
gcr.io/[PROJECT-ID]/quickstart-image:tag1 \
eu.gcr.io/[OTHER-PROJECT-ID]/quickstart-image:tag1

[PROJECT-ID][OTHER-PROJECT-ID] は Google Cloud Platform Console プロジェクト ID(コピー元プロジェクトとコピー先プロジェクトのプロジェクト ID)です。こうしたプロジェクトの両方のリポジトリにアクセスできる必要があります。プロジェクト ID のいずれかにコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

このコマンドの詳細については、gcloud container images add-tag をご覧ください。

イメージの削除

イメージを削除するには、Google Cloud Platform Console またはコマンドラインを使用します。イメージを削除すると、この操作を元に戻すことはできません。

Console

Container Registry リポジトリの 1 つからイメージを削除するには:

  1. リポジトリのリストからイメージ名をクリックすると、そのイメージのバージョンが表示されます。
  2. レジストリで、削除するイメージのバージョンの横にあるチェックボックスをオンにします。
  3. ページの上部にある [削除] をクリックします。
  4. [リポジトリ アイテムの削除] ポップアップで、[削除] をクリックします。

gcloud

Container Registry リポジトリのいずれかからイメージを削除するには、次のいずれかのコマンドを使用します。

  • ダイジェストによって識別されるイメージ:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
    
  • タグによって識別されたイメージ。複数のタグがあります:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
    

ここで

  • [HOSTNAME] は、コンソールで [場所] の下に表示されます。4 つのオプション、gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io のいずれかです。
  • [PROJECT-ID] は Google Cloud Platform Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • [IMAGE] は、Container Registry 内のイメージ名です。
  • [IMAGE_DIGEST] は、イメージ コンテンツの sha256 ハッシュ値です。
  • [TAG] は削除するイメージのタグです。

このコマンドの詳細については、gcloud container images delete をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...