1.安装
docker pull registry
2.运行
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart=always registry
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,将主机的/data/registry目录挂载到该目录,即可实现将镜像保存到主机的/data/registry目录了
3.build需要推送到私服的镜像
docker build -f ${CUR_PATH}/Dockerfile-app --tag 192.168.1.31:5000/app-server-img:latest .
为了将镜像push到registry,首先将主机的registry镜像命名为符合仓库要求registry_url:port/ImageName:tag的格式
4.push
docker push 192.168.1.31:5000/app-server-img:latest
这里经常会出现一个错误
unable to ping registry endpoint https://172.18.3.22:5000/v0/
v2 ping attempt failed with error: Get https://172.18.3.22:5000/v2/: http: server gave HTTP response to HTTPS client
这是由于Registry为了安全性考虑,默认是需要https证书支持的.
但是我们可以通过一个简单的办法解决:
修改/etc/docker/daemon.json文件
#vi /etc/docker/daemon.json
{
"insecure-registries": ["<ip>:5000"]
}
#systemctl daemon-reload
#systemctl restart docker
注:<ip>:Registry的机器ip地址,在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。
5.查看Registry中所有镜像信息
curl http://<ip>:5000/v2/_catalog
返回:
{"repositories":["centos6.8","jenkins1.638","nginx","redis3.0","source2.0.3","zkdubbo"]}
或者浏览器访问地址 http://<ip>:5000/v2/_catalog
6.下载镜像
docker pull <ip>:5000/nginx1.8:latest