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

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

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

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

始める前に

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Cloud de Confiance console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Cloud de Confiance console, go to the IAM page.

      IAM に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Workforce Identity プール内のユーザーの ID です。詳細については、IAM ポリシーで Workforce プールユーザーを表すをご覧いただくか、管理者にお問い合わせください。

    5. [ロールを選択] リストでロールを選択します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。

    ローカルシェルの設定

    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. Cloud de Confiance コンソールで [リポジトリ] ページを開きます。

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

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

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

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

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

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

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

    gcloud

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

      gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
          --location=u-france-east1 --description="Docker repository" \
          --project=PROJECT
      

      ここで、PROJECT は Cloud de Confiance by S3NS プロジェクト ID です

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

      gcloud artifacts repositories list \
          --project=PROJECT
      

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

    認証を構成する

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

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

    gcloud auth configure-docker u-france-east1-docker.s3nsregistry.fr
    

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

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

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

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

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

       docker pull us-docker.s3nsregistry.fr/google-samples/containers/gke/hello-app:1.0
    

    Artifact Registry のイメージパスは複数の部分から成ります。このサンプル イメージの場合は、次のようになります。

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

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

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

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

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

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

    docker tag us-docker.s3nsregistry.fr/google-samples/containers/gke/hello-app:1.0 \
    u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    説明:

    • u-france-east1 は、リポジトリのロケーションです。
    • u-france-east1-docker.s3nsregistry.fr は、作成した Docker リポジトリのホスト名です。
    • PROJECT は Cloud de Confiance by S3NS プロジェクト ID です。
    • quickstart-docker-repo は、作成したリポジトリの ID です。
    • quickstart-image はリポジトリで使用するイメージ名です。イメージ名は、ローカル イメージ名とは別の名前にできます。このクイックスタートでは、イメージをリポジトリ ID quickstart-docker-repo の直下に保存します。
    • tag1 は Docker イメージに追加するタグです。タグを指定しない場合は、Docker でデフォルトのタグ latest が適用されます。

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

    イメージを Artifact Registry に push する

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

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

    docker push u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    PROJECT を実際の Cloud de Confiance by S3NSプロジェクト ID に置き換えます。

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

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

    docker pull u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    PROJECT を実際の Cloud de Confiance by S3NSプロジェクト ID に置き換えます。
    latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
    Digest: sha256:70c42...
    Status: Image is up to date for u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
    

    クリーンアップ

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

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

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

    コンソール

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

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

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

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

    gcloud

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

    gcloud artifacts repositories delete quickstart-docker-repo --location=u-france-east1

    次のステップ