Google Container RegistryはGoogleが提供するPrivateなDockerのリポジトリ。
アップロードしたイメージはGCSに保存されるようで、コストは容量課金となる。(GCSとして課金)。
イメージはGCSにアップロードされる。
ex) GCSには以下のようなバケット、パスでコンテナイメージが格納されるようである。
/artifacts.{PJ Name}.appspot.com/containers/
アクセスコントロール
デフォルトではプロジェクトのオーナーとエディターがバケットに対してpushとpullが可能であり、Viewerはpullだけが可能である。
ContainerRegistryへ適切なACLを設定したいときはGCSに対して適切なACLを設定すればよい。
Container RegistryへのPush
Pushする前にイメージへTagを付ける必要がある。
その際にPush先のホスト名をTagに含める必要がある。Push先のホスト名は以下から選択する。
*us.gcr.io:USにイメージが保管される
*eu.gcr.io:EUにイメージが保管される
*asia.gcr.io:ASIAにイメージが保管される
*gcr.io:USにイメージが保管されるが、将来的には変更される可能性あり。
*b.gcr.io:既に存在するGCSバケットにイメージが保管される。
ホスト名が決まったらGCPプロジェクト名を含めて以下のようにTagを生成する。
gcr.io/your-project-id/...
RegistryへイメージをPush
- イメージへタグを付ける
docker tag user/example-image gcr.io/your-project-id/example-image
- gcloudを使用してCloud Registryへpushする。
gcloud docker push gcr.io/your-project-id/example-image
Container RegistryからイメージをPull
以下のコマンドでイメージをPullできる。
gcloud docker pull gcr.io/your-project-id/example-image