More than 3 years have passed since last update.


GCP Container Registry に Docker ImageをPushする


GCPでDocker Imageを管理します。Container Registry を使用します。


PUSH後には、Docker Imageが参照できます


1. gcloud config を確認

  • gcloudが使用できる状態にします
  • ImageをPUSHしたい、projectが指定されているか確認します。もし異なれば、configを変更します
$ gcloud config list
account = your_account@gmail.com
disable_usage_reporting = False
project = project id

Your active configuration is: [project id]

2. 初期設定

  • 以下のコマンドで、 Container Registry に pushできるようになります
    • 裏ではDocker configを gcloudの設定をもとに書き換えてくれています
$ gcloud auth configure-docker
The following settings will be added to your Docker config file
located at [/Users/user/.docker/config.json]:
  "credHelpers": {
    "gcr.io": "gcloud",
    "us.gcr.io": "gcloud",
    "eu.gcr.io": "gcloud",
    "asia.gcr.io": "gcloud",
    "staging-k8s.gcr.io": "gcloud",
    "marketplace.gcr.io": "gcloud"

Do you want to continue (Y/n)?

3. docker build

  • buildするときに以下のようにtagをつけます

    • gcr.io : ホストする場所を指定※1
    • [project id] : 自身のもの
    • [app] : 自身のもの
    • latest : 自由にtagをつけれます
  • ビルド済みのimageにあとからtagをつけてもOKです

docker build -t gcr.io/[project id]/[app]:latest .

※1 公式ドキュメントより

gcr.io は米国でイメージをホストしていますが、今後は場所が変更される可能性があります。
us.gcr.io は米国でイメージをホストしますが、その場所は、gcr.io によってホストされるイメージからは独立したストレージ バケットです。
eu.gcr.io は、欧州連合でイメージをホストします。
asia.gcr.io は、アジアでイメージをホストします。

4. docker push

  • あとは docker push するだけです
$ docker push gcr.io/[project id]/[app]:latest
The push refers to a repository [gcr.io/[project id]/[app]:latest]
01a52b56cea2: Pushed
91eb52a6df15: Pushed

注意:Docker の version

  • 要件 は 1.13 or higher なので、 必要なら Update します
$ gcloud auth configure-docker
ERROR: (gcloud.auth.configure-docker) Invalid Docker version: The version of your Docker client is [1.12.3'
]; version [1.13] or higher is required to support Docker credential helpers.


私のversionは古かったので、Docker for Mac上から update しました

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up