1、在需要构建仓库的服务器中下载registry镜像
2、下载完之后我们通过该镜像启动一个容器,默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下:
3、接下来我们需要把本地镜像推送到私有仓库中,首先在132机器下pull一个比较小的镜像来测试(此处使用的是busybox)。
4、接下来修改一下该镜像的tag。
$ sudo docker tag busybox 172.31.141.211:5000/busybox
5、
接下来把打了tag的镜像上传到私有仓库。
$ sudo docker push 172.31.141.211:5000/busybox
可以看到push失败,具体错误如下:
The push refers to a repository [172.31.141.211:5000/busybox]
Get https://172.31.141.210:5000/v1/_ping: dial tcp 172.31.141.2115000: getsockopt: connection refused
这个错误查阅了很多资料,最后解决方法:
修改Registry server上的Docker daemon的配置, ExecStart 参数后面增加 –insecure-registry 172.31.141.211:5000
$vim /etc/systemd/system/docker.service.d/http-proxy.conf
然后
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
6、再次重试,成功