概要

ローカル環境で開発してビルドしたコンテナイメージを、ローカルから「Container Registry」のリポジトリにプッシュするための作業

参考

https://cloud.google.com/container-registry/docs/pushing-and-pulling#push_the_tagged_image_to

手順

1. gcloudの設定

  1. gcloudコマンドをローカル環境にインストール

2.初期設定

  • gcloud init

2. イメージのPush/Pull用サービスアカウント作成

自分のユーザーアカウントを使う場合、プロジェクトがいろいろと紐づいているとプロジェクトIDの選択ミスが怖いので、専用のサービスアカウントを作る。

1.サービスアカウント作成

  • コンソールで作業

2.権限設定

3.サービスアカウントのキーを作成し、ローカルで認証設定

3. Docker 認証設定

gcloud をDockerの認証ヘルパーとして使用するための設定

  1. ローカルで gcloud auth configure-dockerを実行

4. Dockerイメージのプッシュ

※ もし複数アカウントがある場合は以下でアカウントを切り替える
gcloud config set account [ACCOUNT]

1.ローカル イメージにレジストリ名でタグ付けする

  • 命名規則 : [HOSTNAME]/[PROJECT-ID]/[IMAGE]
    • [HOSTNAME] : 以下から選ぶ。これでイメージを保存する場所が決まる。
      • gcr.io は米国内のデータセンターでイメージをホストしていますが、今後は場所が変更される可能性があります。
      • us.gcr.io は米国内のデータセンターでイメージをホストしていますが、gcr.io によってホストされるイメージからは独立したストレージ バケットです。
      • eu.gcr.io は、欧州連合でイメージをホストします。
      • asia.gcr.io は、アジアのデータセンターでイメージをホストします。
    • [PROJECT-ID] : 対象のGoogle CloudプロジェクトのプロジェクトID
    • [IMAGE] : コンテナイメージの名前
  • タグ付けコマンド : docker tag [ローカル イメージ名またはイメージ ID] [レジストリ名]:[タグ(未指定はlatest)]

2.プッシュ

  • docker push [レジストリ名]:[タグ(未指定はlatest)]

新規でプッシュすると、Container Registry上にリポジトリができる。

元記事はこちら

【GCP】ローカルのDockerイメージをContainer RegistryにPushするまで