Container Registry のクイックスタート

このクイックスタートでは、Container Registry 用に Docker を構成してから、イメージを push および pull する方法について説明します。

Google Cloud には、コンテナ イメージの保存と管理を行うための 2 つのサービスがあります。

Artifact Registry(推奨)

限定公開リポジトリで、コンテナ イメージ、Helm チャート、言語パッケージなどのアーティファクトを保存および管理するためのサービス。これは、Google Cloud で推奨されるコンテナ イメージ レジストリです。

Docker のクイックスタートを試して、Artifact Registry について理解を深めてください。

Container Registry

Docker イメージ マニフェスト V2 と OCI イメージの形式をサポートする非公開のコンテナ イメージ レジストリ。Artifact Registry の機能のサブセットを提供します。

現在、Container Registry を使用していない場合は、Artifact Registry を使用してください。Container Registry と Artifact Registry の比較と、Container Registry から Artifact Registry への移行については、Container Registry からの移行をご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Container Registry API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Container Registry API を有効にします。

    API を有効にする

シェルを選択する

このクイックスタートをすべて実行するためには、Cloud Shell またはローカルシェルを使用します。

Cloud Shell
Cloud Shell は、Google Cloud でホストされているリソースを管理するためのシェル環境です。Docker と Google Cloud CLI(Google Cloud の主要なコマンドライン インターフェース)がプリインストールされています。
ローカルシェル
ローカルシェルを使用する場合は、ご利用の環境に Docker と gcloud CLI をインストールする必要があります。

Cloud Shell の起動

Cloud Shell を起動するには、次の手順に従います。

  1. Google Cloud Console に移動します。

    Google Cloud Console

  2. メニューバーで [Cloud Shell をアクティブにする]()ボタンをクリックします。

コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud コマンドを実行します。

ローカルシェルの設定

gcloud と Docker をインストールするには、次の手順に従います。

  1. gcloud CLI をインストールします。 既存のインストールを更新するには、gcloud components update コマンドを実行します。

  2. Docker をまだインストールしていなければ、インストールします。

  3. Docker がレジストリを操作するには特権アクセスが必要です。Linux や Windows では、Docker コマンドを実行するユーザーを Docker セキュリティ グループに追加します。Docker Desktop は、root ユーザーとして仮想マシンで実行されるため、この手順は MacOS では不要です。

    Linux

    Docker セキュリティ グループはdockerと呼ばれます。ユーザー名を追加するには、次のコマンドを実行します。

    sudo usermod -a -G docker ${USER}
    

    Windows

    Docker セキュリティ グループはdocker-usersと呼ばれます。管理者のコマンド プロンプトからユーザーを追加するには、次のコマンドを実行します。

    net localgroup docker-users DOMAIN\USERNAME /add
    

    ここで

    • DOMAIN は Windows ドメインです。
    • USERNAME はユーザー名です。
  4. ログアウトして再度ログインすると、グループ メンバーシップの変更が反映されます。仮想マシンを使用している場合、メンバーシップの変更を有効にするために、仮想マシンの再起動が必要になることがあります。

  5. Docker が稼働中であることを確認するには、現在の時刻と日付を返す次の Docker コマンドを実行します。

  6. docker run busybox date
    

認証を構成する

イメージを push または pull するには、Google Cloud CLI を使用して Container Registry へのリクエストを認証するように Docker を構成する必要があります。

次のコマンドを実行します。

gcloud auth configure-docker

このコマンドにより、Docker 構成が更新されます。これで、Google Cloud プロジェクトの Container Registry に接続して、イメージの push と pull ができるようになりました。

push するイメージを取得する

このクイックスタートでは、hello-app という名前のサンプル イメージを push します。

  1. イメージを保存するディレクトリに移動します。
  2. 次のコマンドを実行して、イメージのバージョン 1.0 を pull します。

    docker pull gcr.io/google-samples/hello-app:1.0
    

イメージを Container Registry に追加する

Container Registry にイメージを追加するには、それにタグを付けてレジストリに push します。

イメージにレジストリ名をタグ付けする

Docker イメージにレジストリ名をタグ付けすると、イメージを特定の場所に push するように docker push コマンドが構成されます。このクイックスタートでは、ホストの場所は gcr.io です。

次のコマンドを実行して、イメージに quickstart-image:tag1 としてタグ付けします。

docker tag gcr.io/google-samples/hello-app:1.0 gcr.io/PROJECT_ID/quickstart-image:tag1

以下を置き換えます。

  • PROJECT-ID は、Google Cloud Console プロジェクト ID です。対象の ID をコマンドに追加します。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • gcr.io はホスト名です。
  • quickstart-image は Docker イメージの名前です。
  • tag1 は Docker イメージに追加するタグです。タグを指定しない場合は、Docker でデフォルトのタグ latest が適用されます。

イメージを Container Registry に push する準備ができました。

イメージを Container Registry に push する

認証を構成してローカル イメージにタグ付けしたら、作成したリポジトリにイメージを push できます。

Docker イメージを push するには、次のコマンドを実行します。

docker push gcr.io/PROJECT_ID/quickstart-image:tag1

PROJECT_ID は、Google Cloud Console プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

新しいホストの場所にイメージを push すると、プロジェクトに固有の基になるストレージ バケットが作成されます。Container Registry でホストされているイメージは Google Cloud コンソールから、またはウェブブラウザでイメージのレジストリ名(http://gcr.io/PROJECT_ID/quickstart-image)にアクセスして確認できます。

イメージを Container Registry から pull する

Container Registry からローカルマシンにイメージを pull するには、次のコマンドを実行します。

docker pull gcr.io/PROJECT_ID/quickstart-image:tag1

PROJECT_ID を Google Cloud Console プロジェクト ID に置き換えます。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

出力は次のようになります。

latest: Pulling from my-project/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/my-project/quickstart-image:tag1

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

次のコマンドを実行して Container Registry から Docker イメージを削除します。

gcloud container images delete gcr.io/PROJECT_ID/quickstart-image:tag1 --force-delete-tags

PROJECT_ID を Google Cloud Console プロジェクト ID に置き換えます。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

次のステップ