Private Docker Registry比較

created at 2017/04/23 17:07:46

PrivateなDocker Registryが欲しい時、昔は自分で建ててたけど今回はGoogle Container Registryを使った。
楽ちんでした。

Private Docker Registry比較

Docker Hub

https://hub.docker.com/

一応オフィシャルな老舗サービス。
Dockerイメージを使うといったらたいていの場合はここからpublicなイメージを落として使うことになる。

Privateリポジトリも1つまでなら無料。タグを頑張って使い分ければ好きなだけPrivateイメージをpushできる気もするけど、さすがに運用がつらそう。
複数個のPrivateリポジトリを使いたければ有料プランが必要で、Privateリポジトリ5つで月7ドルとなる。昔のGitHubみたいな料金体系。

GitHubと連携して自動でビルドもできるし、Docker本家のサービスってところがいいところ。

Docker Registry

https://hub.docker.com/_/registry/

Docker RegistryはDockerイメージが公開されていて自分で構築することもできる。

今だとほとんどの場合は運用が辛いだけなので選択肢にはならない。
どうしてもイメージを外に出したくないとか、既に大規模なインフラ持っててコストを安くしたいってときの選択肢。

昔これを使ってたときは証明書まわりとかストレージまわりがめんどくさかった。
ストレージにS3やGCSも使えるけど、その場合は素直に外のサービスを使ったほうがいい。

Amazon EC2 Container Registry

https://aws.amazon.com/jp/ecr/

AWSのPrivate Container Registry。
料金はストレージ料金と転送料金の従量課金。

ストレージは月0.10ドル/GB。
転送料は例によってややこしいけど、月0.14ドル/GBぐらいかと。

AWSの指示に従ってdockerコマンドでログインすれば使えるようになる。

AWS内でイメージをビルドしてECRにpushするにはCodeBuildを使うっぽい。

Google Container Registry

https://cloud.google.com/container-registry/

GCPのPrivate Container Registry。
料金はGCSの料金のみ。

ストレージはデフォルトでMulti-Regionalが選択されるので、月0.026ドル/GB。
転送料は月0.12ドル/GB。

なので料金はECRより安いはず。

GCRはgcloudコマンドで操作することが推奨されているが、ドキュメントに従ってログインすればdockerコマンドでも使えるようになる。
例えば、JSONキーファイルを使ってログインする場合はこんな感じ。

docker login -e [email protected] -u _json_key -p "$(cat keyfile.json)" https://asia.gcr.io

おわりに

今回は料金のやすさやお手軽さなどからGCRを選択した。
使いやすくて引っかかるところもなかったし、push/pullもはやいので満足している。