Google Artifact Registry(GAR)入門 Dockerクイックスタート
概要
個人の備忘録としてGoogle Artifact Registryの Dockerクイックスタートの実行手順について記載していきます。
参考
前提
- Google Cloudのアカウント作成
- Google Cloud Consoleの「プロジェクト セレクタ」ページでプロジェクトを選択または新規作成
- Artifact Registry APIを有効にします
シェルの設定
Cloud Shellまたはローカルシェルを利用します。
今回はローカルシェルを利用してみます。
上記資料を参考にインストールします。
インストール後、下記コマンドでversionを確認できます。
$ gcloud version
Google Cloud SDK 378.0.0
bq 2.0.74
core 2022.03.18
gsutil 5.8
gcloudはAWSのAWS CLIコマンドに該当するものです。
またgcloudを利用するには次のようにアカウントの認証とプロジェクトの設定が必要です。
# gcloudの認証・ログイン
$ gcloud auth login
# 利用するprojectのセット
$ gcloud config set project PROJECT_ID
# 設定を確認
$ gcloud config list
Dockerリポジトリを作成
コンソールの場合
-
リポジトリページを開きます
-
[リポジトリを作成] をクリックします。
-
リポジトリ名を指定(この例では
quickstart-docker-repo
) -
形式で
Docker
を選択 -
ロケーションタイプ
でリージョン
を選択し、us-central1
を指定 -
入力完了後、「作成」をクリック
作成が完了すると次のように表示を確認できます。
gcloud経由の場合
gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
--location=us-central1 --description="Docker repository"
作成後、下記コマンドで一覧を確認できます。
認証を構成
Artifact Registry へのリクエストを認証するように Docker を構成します。
# リージョン`us-central1`のDockerリポジトリに対する認証を設定
$ gcloud auth configure-docker us-central1-docker.pkg.dev
Adding credentials for: us-central1-docker.pkg.dev
After update, the following will be written to your Docker config file located at [/Users/sasaki-katsuharu/.docker/config.json]:
{
"credHelpers": {
"us-central1-docker.pkg.dev": "gcloud"
}
}
Do you want to continue (Y/n)? Y
Docker configuration file updated.
これにより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
# pullしたイメージを確認
$ docker iamges
us-docker.pkg.dev/google-samples/containers/gke/hello-app 1.0 f4d42e081a02 3 weeks ago 11.5MB
リポジトリにイメージを追加
DockerイメージをArtifact Registryにpushするにはそのイメージにリポジトリ名でタグ付けする必要があります。
イメージにレジストリ名をタグ付けする
Dockerイメージにリポジトリ名をタグ付けすると、イメージを特定の場所にpushするようにdocker push
コマンドが構成されます。今回の例ではホストの場所はus-central1-docker.pkg.dev
です。
$ 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
には環境に応じた値を指定します。 -
docker.pkg.dev
はDockerリポジトリのホスト名です -
quickstart-image
はリポジトリで使用するイメージ名。イメージ名はローカルイメージ名と異なる場合があります。 -
tag1
はDockerイメージに追加するタグです。
# イメージ・タグ付けを確認
$ docker images
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image tag1 f4d42e081a02 3 weeks ago 11.5MB
us-docker.pkg.dev/google-samples/containers/gke/hello-app 1.0 f4d42e081a02 3 weeks ago 11.5MB
これでイメージをpushする準備ができました。
イメージをArtifact Registryにpushする
$ docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
コンソール上で次のように確認できます
▼push前
▼push後
Artifact Registryからイメージをpull
$ docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
クリーンアップ
以上で設定が完了です。
今回作成したリソースは次のコマンドで削除できます。
$ gcloud artifacts repositories delete quickstart-docker-repo --location=us-central1
Discussion