Docker のクイックスタート

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

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

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

始める前に

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

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

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

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

    API を有効にする

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

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

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

  7. Artifact 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 コマンドを実行します。

ローカルシェルの設定

Cloud SDK と Docker をインストールするには、次の手順を実行します。

  1. Cloud SDK をインストールします。これには、gcloud コマンドライン ツールが含まれています。既存のインストールを更新するには、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
    

Docker リポジトリを作成する

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

コンソール

  1. Cloud Console で [リポジトリ] ページを開きます。

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

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

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

  4. Docker を形式として選択します。

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

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

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

gcloud

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

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
    --location=us-central1 --description="Docker repository"
    
  2. 次のコマンドを実行して、リポジトリが作成されたことを確認します。

    gcloud artifacts repositories list
    

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

認証を構成する

イメージを push または pull する前に、gcloud コマンドライン ツールを使用して Artifact Registry へのリクエストを認証するように Docker を構成します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ここで

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

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

イメージを Artifact Registry に push する

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

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

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

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

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

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

docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

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

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

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

クリーンアップ

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

リポジトリを削除する前に、保持するイメージを別の場所に配置してください。

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

コンソール

  1. Cloud Console で [リポジトリ] ページを開きます。

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

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

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

gcloud

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

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

次のステップ