イメージの管理

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

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

始める前に

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

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

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

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

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

    gcloud auth configure-docker
        
  5. Docker が使用する認証ヘルパーはシステム PATH 内に存在する必要があります。選択した認証ヘルパー、gcloud、または docker-credential-gcr が、PATH システム内にあることを確認してください。

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

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

Console

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

  1. [Container Registry] ページに移動

    Container Registry ページを開く

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

gcloud

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

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

ここで

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

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

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

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

gcloud container images list のドキュメントも参照してください。

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

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

Console

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

  1. [Container Registry] ページに移動

    Container Registry ページを開く

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

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

gcloud

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

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

ここで

  • [HOSTNAME] は、Console で Location の下に表示されます。gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io の 4 つのうち、いずれかのオプションになります。
  • [PROJECT-ID] は、Google Cloud 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 Console またはコマンドラインを使用できます。レジストリでは、タグはイメージのバージョンに固有です。したがって、複数のバージョンのイメージを使用している場合、各タグは 1 つのバージョンにのみ適用されます。すでに使用されているタグでイメージにタグを付けると、元のバージョンから新しくタグ付けされたバージョンにタグが移動します。

Console

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

  1. [Container Registry] ページに移動

    Container Registry ページを開く

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

  3. [タグ] で、編集アイコンをクリックします。

  4. フィールドに新しいタグを入力し、[保存] をクリックします。

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] は、Console で Location の下に表示されます。gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io の 4 つのうち、いずれかのオプションになります。
  • [PROJECT-ID] は、Google Cloud 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 Console またはコマンドラインを使用できます。

Console

  1. [Container Registry] ページに移動

    Container Registry ページを開く

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

  3. [タグ] で、編集アイコンをクリックします。

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

gcloud

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

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

ここで

  • [HOSTNAME] は、Console で Location の下に表示されます。gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io の 4 つのうち、いずれかのオプションになります。
  • [PROJECT-ID] は、Google Cloud 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] は、イメージがホストされている場所です。gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io の 4 つのうち、いずれかのオプションになります。
  • [PROJECT-ID] は、Google Cloud 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 Console プロジェクト ID です。こうしたプロジェクトの両方のリポジトリにアクセスできる必要があります。プロジェクト ID のいずれかにコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

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

画像の削除

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

Console

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

  1. [Container Registry] ページに移動

    Container Registry ページを開く

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

  3. レジストリで、削除するイメージのバージョンの横にあるチェックボックスをオンにします。

  4. ページの上部にある [削除] をクリックします。

  5. [リポジトリ アイテムの削除] ポップアップで、[削除] をクリックします。

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

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

次のステップ