Docker コンテナ イメージを Artifact Registry に保存する
Artifact Registry は、プライベート パッケージと Docker コンテナ イメージを 1 か所で管理できる場所として機能します。
このクイックスタートでは、次の方法について説明します。
- Artifact Registry でプライベート Docker リポジトリを作成する
- 認証を設定する
- イメージをリポジトリに push する
- リポジトリからイメージを pull する
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
始める前に
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the Artifact Registry API.
ローカルシェルの設定
gcloud CLI と 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 --rm busybox date
--rm
フラグは、終了時にコンテナ インスタンスを削除します。
Docker リポジトリを作成する
このクイックスタートのサンプル イメージを保存する Docker リポジトリを作成します。
コンソール
Google Cloud コンソールで [リポジトリ] ページを開きます。
[追加] [リポジトリを作成] をクリックします。
リポジトリ名として
quickstart-docker-repo
を指定します。形式として Docker を選択し、モードとして Standard を選択します。
[ロケーション タイプ] で、[リージョン] を選択し、ロケーション
u-france-east1
を選択します。[作成] をクリックします。
このリポジトリがリポジトリ リストに追加されます。
gcloud
次のコマンドを実行して、場所
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 は Trusted Cloud by S3NS プロジェクト ID です
次のコマンドを実行して、リポジトリが作成されたことを確認します。
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 構成が更新されます。これで、 Trusted Cloud プロジェクトの 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 は Trusted Cloud by S3NS プロジェクト ID です。
quickstart-docker-repo
は、作成したリポジトリの ID です。quickstart-image
はリポジトリで使用するイメージ名です。イメージ名はローカル イメージ名とは異なる場合があります。このクイックスタートでは、イメージをリポジトリ IDquickstart-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
Artifact Registry からイメージを pull する
Artifact Registry からローカルマシンにイメージを pull するには、次のコマンドを実行します。
docker pull u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-docker-repo/quickstart-image:tag1
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
クリーンアップ
このページで使用したリソースについて、 Trusted Cloud アカウントに課金されないようにするには、次の手順を行います。
リポジトリを削除する前に、保持する必要があるイメージが別の場所で使用可能であることを確認してください。
リポジトリを削除するには、次の手順を行います。
コンソール
Google Cloud コンソールで [リポジトリ] ページを開きます。
[リポジトリ] リストで、
quickstart-docker-repo
リポジトリを選択します。[削除] をクリックします。
gcloud
quickstart-docker-repo
リポジトリを削除するには、次のコマンドを実行します。
gcloud artifacts repositories delete quickstart-docker-repo --location=u-france-east1
次のステップ
- コンテナ イメージの操作の詳細を学習する。
- Docker について詳しく学習する。
- DevOps に関するリソースをご覧ください。また、DevOps Research and Assessment(DORA) 研究プログラムについても確認してください。