はじめに
GCPでDocker Imageを管理します。Container Registry を使用します。
PUSH後には、Docker Imageが参照できます
手順
1. gcloud config を確認
- gcloudが使用できる状態にします
- ImageをPUSHしたい、projectが指定されているか確認します。もし異なれば、configを変更します
$ gcloud config list
[core]
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 しました