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 件のコメント:
コメントを投稿