Artifact Registry は、コンテナやその他の形式をサポートするユニバーサル パッケージ管理サービスです。アーティファクトの柔軟性と制御を強化するために、Container Registry からの移行について説明します。

Container Registry のクイックスタート

Container Registry は、Google Cloud 上で実行される非公開のコンテナ イメージ レジストリです。

このクイックスタートでは、次の方法について説明します。

  • Container Registry への認証用に Docker を構成する
  • イメージにタグを付けてレジストリに push する
  • イメージをレジストリから pull する

このクイックスタートでは、Docker との統合に重点を置いています。他の Google Cloud サービスとの統合に関する一般的な情報については、Google Cloud での Container Registry の使用をご覧ください。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

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

    API を有効にする

シェルを選択する

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

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

Cloud Shell の起動

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

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

    Google Cloud Console

  2. [Cloud Shell をアクティブにする]("")ボタンをクリックします。

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

ローカルシェルの設定

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

  1. Cloud SDK をインストールします。これには、gcloud コマンドライン ツールが含まれています。 既存のインストールを更新するには、gcloud components update コマンドを実行します。

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

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

    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 するには、gcloud コマンドライン ツールを使用して 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 でホストされているイメージは Cloud Console から、またはウェブブラウザでイメージのレジストリ名(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 にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

次のステップ