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 からの移行をご覧ください。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Container Registry API を有効にします。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Google Cloud プロジェクトの課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Container Registry API を有効にします。
シェルを選択する
このクイックスタートをすべて実行するためには、Cloud Shell またはローカルシェルを使用します。
- Cloud Shell
- Cloud Shell は、Google Cloud でホストされているリソースを管理するためのシェル環境です。Docker と Google Cloud CLI(Google Cloud の主要なコマンドライン インターフェース)がプリインストールされています。
- ローカルシェル
- ローカルシェルを使用する場合は、ご利用の環境に Docker と gcloud CLI をインストールする必要があります。
Cloud Shell の起動
Cloud Shell を起動するには、次の手順に従います。
Google Cloud Console に移動します。
メニューバーで [Cloud Shell をアクティブにする](
)ボタンをクリックします。
コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud
コマンドを実行します。
ローカルシェルの設定
gcloud
と Docker をインストールするには、次の手順に従います。
gcloud CLI をインストールします。 既存のインストールを更新するには、
gcloud components update
コマンドを実行します。Docker をまだインストールしていなければ、インストールします。
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 はユーザー名です。
ログアウトして再度ログインすると、グループ メンバーシップの変更が反映されます。仮想マシンを使用している場合、メンバーシップの変更を有効にするために、仮想マシンの再起動が必要になることがあります。
Docker が稼働中であることを確認するには、現在の時刻と日付を返す次の Docker コマンドを実行します。
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.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 にコロン(:
)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。