2018/07/01

自前の Docker Registry を立てて、 Build した Image を保存する

さて、Docker を使っていて Image を作った後、他の人に配るにはいくつか方法があります。
export/import したりとか、dockerhub に置いたりとか、自前で Registry を立てたりとか。
今回は自前で Docker Registry を立ててみようと思います。


環境(docker client と registry server の両方は同じ環境)

  • OS: CentOS Linux release 7.4.1708 (Core)
  • Docker: version 1.13.1, build 774336d/1.13.1
  • Kernel: 3.10.0-693.5.2.el7.x86_64


Registry を立てる

Image が提供されているのでコマンド一発でおしまい。
  • registry-server$ docker run -d -p 5000:5000 --name registry registry:2
便利ですね。


Config とか

立てるのは簡単ですが、外から使うにはいくつか設定がいります。
まずは firewall で 5000 番を開放します。
  • registry-server$ sudo firewall-cmd --add-port=5000/tcp --permanent
  • registry-server$ sudo firewall-cmd --reload
これでOK。ということで push してみましょう。
  • docker-client$ docker image tag hoge 192.168.0.1:5000/hoge
  • docker-client$ docker push 192.168.0.1:5000
怒られます。
Get https://192.168.0.1:5000/v1/_ping: http: server gave HTTP response to HTTPS client
クライアント側が https で繋ぎにいってるのに http を返してきてる、と。
調べたところ、http でアクセスする registry と指定すれば良いらしいです。

と、いうことで指示通りに /etc/docker/daemon.json に書く。
  • docker-client$ sudo echo '{ "insecure-registries":["192.168.0.1:5000"] }' > /etc/docker/daemon.json
  • docker-client$ sytemctl restart docker
  • docker-client$ docker push 192.168.0.1:5000
これで通りました。良し良し。

今日日 https 必須感もありますし、https にするのが正しい気もしますが、動いたのでまずは一段落。


参考

0 件のコメント:

コメントを投稿