Private Docker Registry比較
Private な Docker Registry が欲しい時、昔は自分で建ててたけど今回は Google Container Registry を使った。 楽ちんでした。
Docker Hub
一応オフィシャルな老舗サービス。 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 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://asia.gcr.io
おわりに
今回は料金のやすさやお手軽さなどから GCR を選択した。 使いやすくて引っかかるところもなかったし、push/pull もはやいので満足している。