Docker コンテナ イメージを Artifact Registry に保存する

Artifact Registry は、プライベート パッケージと Docker コンテナ イメージを 1 か所で管理できる場所として機能します。

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

  • Artifact Registry でプライベート Docker リポジトリを作成する
  • 認証を設定する
  • イメージをリポジトリに push する
  • リポジトリからイメージを pull する

このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


始める前に

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry API.

    Enable the 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 CLI と 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 コマンドを実行します。

    docker run --rm busybox date
    

    --rm フラグは、終了時にコンテナ インスタンスを削除します。

Docker リポジトリを作成する

このクイックスタートのサンプル イメージを保存する Docker リポジトリを作成します。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. [追加] [リポジトリを作成] をクリックします。

  3. リポジトリ名として quickstart-docker-repo を指定します。

  4. 形式として Docker を選択し、モードとして Standard を選択します。

  5. [ロケーション タイプ] で、[リージョン] を選択し、ロケーション us-west1 を選択します。

  6. [作成] をクリックします。

このリポジトリがリポジトリ リストに追加されます。

gcloud

  1. 次のコマンドを実行して、場所 us-west1 に「docker repository」という説明の付いた quickstart-docker-repo という新しい Docker リポジトリを作成します。

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-west1 --description="Docker repository" \
        --project=PROJECT
    

    ここで PROJECT は、Google Cloud プロジェクト ID です。

  2. 次のコマンドを実行して、リポジトリが作成されたことを確認します。

    gcloud artifacts repositories list \
        --project=PROJECT
    

Artifact Registry コマンドの詳細については、gcloud artifacts コマンドを実行してください。

認証を構成する

イメージを push または pull する前に、Google Cloud CLI を使用して Artifact Registry に対するリクエストを認証します。

リージョン us-west1 の Docker リポジトリの認証を設定するには、次のコマンドを実行します。

gcloud auth configure-docker us-west1-docker.pkg.dev

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

その他の認証方法については、認証方法をご覧ください。

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

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

次のコマンドを実行して、イメージのバージョン 1.0 を pull します。

   docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Artifact Registry のイメージパスは複数の部分から成ります。このサンプル画像の場合:

  • us-docker.pkg.dev は、Artifact Registry Docker リポジトリに格納されているコンテナ イメージのホスト名です。これには、リポジトリの場所(us)が含まれます。
  • google-samples は、プロジェクト ID です。
  • containers は、リポジトリ ID です。
  • /gke/hello-app は、リポジトリ containers 内のイメージのパスです。

イメージをリポジトリに追加する

Docker イメージを Artifact Registry に push する前に、イメージにリポジトリ名をタグ付けしておく必要があります。

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

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

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

docker tag us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 \
us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

ここで

  • us-west1 は、リポジトリのロケーションです。
  • us-west1.docker.pkg.dev は、作成した Docker リポジトリのホスト名です。
  • PROJECT は、Google Cloud プロジェクト ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
  • quickstart-docker-repo は、作成したリポジトリの ID です。
  • quickstart-image はリポジトリで使用するイメージ名です。イメージ名はローカル イメージ名とは異なる場合があります。このクイックスタートでは、イメージをリポジトリ ID quickstart-docker-repo の直下に保存します。
  • tag1 は Docker イメージに追加するタグです。タグを指定しない場合は、Docker でデフォルトのタグ latest が適用されます。

これで、作成したリポジトリにイメージを push する準備ができました。

イメージを Artifact Registry に push する

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

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

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
PROJECT は、Google Cloud のプロジェクト ID に置き換えます。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。

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

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

docker pull us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
PROJECT は、Google Cloud のプロジェクト ID に置き換えます。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

クリーンアップ

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

リポジトリを削除する前に、保持する必要があるイメージが別の場所で使用可能であることを確認してください。

リポジトリを削除するには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. [リポジトリ] リストで、quickstart-docker-repo リポジトリを選択します。

  3. [削除] をクリックします。

gcloud

quickstart-docker-repo リポジトリを削除するには、次のコマンドを実行します。

gcloud artifacts repositories delete quickstart-docker-repo --location=us-west1

次のステップ