LoginSignup
30
32

More than 5 years have passed since last update.

Docker Registry 2.0 を試す+ 運用を考える

Last updated at Posted at 2015-05-30

http://qiita.com/spesnova/items/658a47e40eaea5b5a5f4
ほぼこちらの手順をv2.0に置き換えた版+運用について+パフォーマンス改善について書いてみました。

動機

  • Dockerプライベートレジストリが欲しくなった
  • ウェブをみると、自前はつらいという話が多かったのでどのくらいつらいのか知りたかった

Docker Registry運用方法について

Docker Registry用のサーバは 持たない方針 で進める

持ってしまうと…

  • 管理サーバが増える
  • SPOFになる(冗長化考えるのめんどい)
  • 認証考える必要ある
  • つらい

個々のサーバにDokcer Registryコンテナを立てる方式を採用

かつバックエンドにs3を使う方式にすると、
インタフェースだけローカルのDocker Registryを通して
S3上のDockerイメージを共有することが出来る。

  • 自前管理するバージョンと比べて、デメリットを考慮しなくて良くなる
  • どの環境であっても同じコンフィグを指定しておくだけでDocker Registryを起動すれば動く
  • ただし、全てのサーバでDocker Registryを起動するリソースは増えてしまうのでそこだけ注意


Docker Registry v2 を試してみる

必須環境

Docker Registry2.0では Dockerバージョン 1.6以上 が必要です。
これ未満だとDocker Registryにpushする時エラーが発生します。

前準備

イメージを保持するS3バケットを作っておきます。
空でOK。

起動コマンド

docker run -d \
    --name registry \
    -p 5000:5000 \
    -e REGISTRY_STORAGE_S3_ACCESSKEY=xxxxx \
    -e REGISTRY_STORAGE_S3_SECRETKEY=xxxxx \
    -e REGISTRY_STORAGE_S3_BUCKET=xxxxx \
    -e REGISTRY_STORAGE_S3_REGION=ap-northeast-1 \
    -e REGISTRY_STORAGE_S3_ROOTDIRECTORY=/v2 \
    -e REGISTRY_STORAGE=s3 \
    registry:2.0

実運用時はパラメータをコンフィグファイル化しておいたほうが良いですね。

push/pullしてみる

# 適当なDockerコンテナをビルド
docker build -t localhost:5000/v2test .
# プライベートリポジトリにpush(指定したs3に保存される)
docker push localhost:5000/v2test
# プライベートリポジトリからpull
docker pull localhost:5000/v2test

これだけで行けた。意外と簡単。
ただ、実運用した時に問題が出るかまでは未確認なので
しばらく試してみたい。


パフォーマンス改善について(未検証)

まだ気になっていないが、
おそらくその内パフォーマンスも考える必要がありそう。
いくつか考えられる手段を上げてみる。

CloudFront経由にする

結構速くなるのでは(予想)。
この辺りの設定を指定すれば行けそう。

Redisキャッシュ使う

イミュータブルなblob情報などキャッシュしてくれるらしい。
この辺りの設定を指定すれば行けそう。
こちらを利用する時はRedisもコンテナ化すると良いかも?
docker-compose 使ってDocker RegistryとRedis起動してゴニョゴニョすれば一発ですね)

この辺りは設定しておくと安定性も増しそうな感じするので
将来試してみたい。

30
32
0

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
  3. You can use dark theme
What you can do with signing up
30
32