服务端
启动命令
- docker run -d -p 5000:5000 --restart always --name registry registry:2
- ip地址及验证api
客户端
build
root@swoole_dev:/home/tb/my_docker_helloworld# docker build -t 192.168.1.8:5000/hello_docker:latest .Sending build context to Docker daemon 916.5kBStep 1/3 : FROM scratch ---> Step 2/3 : ADD hello / ---> Using cache ---> 11b009df24b2Step 3/3 : CMD ["/hello"] ---> Using cache ---> 6c539eb137ddSuccessfully built 6c539eb137ddSuccessfully tagged 192.168.1.8:5000/hello_docker:latest## 验证imageroot@swoole_dev:/home/tb/my_docker_helloworld# docker images |grep 192192.168.1.8:5000/hello_docker latest 6c539eb137dd 21 hours ago 913kBroot@swoole_dev:/home/tb/my_docker_helloworld#
验证服务端
root@swoole_dev:/home/tb/my_docker_helloworld# telnet 192.168.1.8 5000Trying 192.168.1.8...Connected to 192.168.1.8.Escape character is '^]'.
尝试push
root@swoole_dev:/home/tb/my_docker_helloworld# docker push 192.168.1.8:5000/hello_docker:latestThe push refers to repository [192.168.1.8:5000/hello_docker]Get https://192.168.1.8:5000/v2/: http: server gave HTTP response to HTTPS clientroot@swoole_dev:/home/tb/my_docker_helloworld# ## 应该是安全策略问题,http vs https
解决办法
vim /etc/docker/deamon.json## 增加第二行{ "registry-mirrors": ["http://d1d9aef0.m.daocloud.io"], "insecure-registries":["192.168.1.8:5000"] }## 验证结果1root@swoole_dev:/home/tb/my_docker_helloworld# vim /etc/docker/daemon.jsonroot@swoole_dev:/home/tb/my_docker_helloworld# service docker restartroot@swoole_dev:/home/tb/my_docker_helloworld# docker push 192.168.1.8:5000/hello_docker:latestThe push refers to repository [192.168.1.8:5000/hello_docker]096f9105d9f4: Pushed latest: digest: sha256:dc9c69395640d5fd7cb9e4f8bd2bdbf788b206a59e942a2a40577d9b1c089934 size: 527root@swoole_dev:/home/tb/my_docker_helloworld#
客户端通过registry api 查看
如果未成功,尝试如下操作
vim /lib/systemd/system/docker.service#增加一行EnvironmentFile=-/etc/docker/daemon.json