2017年3月28日火曜日

docker レジストリを使ってみた

概要

docker レジストリを使ってみました
コンテナ版があるのでそれを使っています

環境

  • Mac OS X 10.12.3
  • docker registry 2.6.0
  • docker 17.03

registry インストール

  • docker pull registry
  • mkdir -p /path/to/registry
  • cd /path/to/registry
  • docker run -d -p 5000:5000 -v $(pwd):/var/lib/registry registry

で完了です
localhost の 5000 番で動作させます

イメージを push してみる

構築したレジストリ上にイメージを push してみます

  • docker pull alpine
  • docker tag alpine localhost:5000/hawksnowlog/alpine
  • docker push localhost:5000/hawksnowlog/alpine

tag を付与するフォーマットは「ホスト名/リポジトリ名/イメージ名」になります
イメージが小さいのもありますが、ローカルホストなので速度も速いです

今回の場合 Mac マシンのカレントディレクトリをコンテナのデータボリュームとして使っています
上記のタグの付け方だと

  • ls docker/registry/v2/repositories/hawksnowlog/alpine/

という感じでイメージ情報を確認することができます

イメージを pull してみる

push したイメージを使ってみます

  • docker rmi localhost:5000/hawksnowlog/alpine
  • docker pull localhost:5000/hawksnowlog/alpine

問題なく pull できると思います

UI を使ってみる

  • docker pull konradkleine/docker-registry-frontend:v2
  • docker run -d -e ENV_DOCKER_REGISTRY_HOST=192.168.100.101 -e ENV_DOCKER_REGISTRY_PORT=5000 -p 8080:80 konradkleine/docker-registry-frontend:v2

192.168.100.101 は docker が動作しているホストの IP です
今回であれば Mac マシンの IP になります

でブラウザで localhost の 8080 にアクセスしてみましょう
管理画面が確認出来ると思います
基本はビューワーなので、画面からイメージを push, pull したりすることはできません

最後に

コンテナバージョンの docker レジストリを使ってみました
個人で使う場合にはレジストリも同じマシンで良いですが、サービスなどで使う場合は専用のマシンと専用のストレージがあったほうが良いかと思います

よくあるのは s3 などと組み合わせるとレジストリのストレージ容量を管理しなくて済むので良いかと思います

0 件のコメント:

コメントを投稿