docker registry 私服

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": [":5000"] 
}
#systemctl daemon-reload 
#systemctl restart docker
注::Registry的机器ip地址,在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。

5.查看Registry中所有镜像信息

curl http://:5000/v2/_catalog
返回:
{"repositories":["centos6.8","jenkins1.638","nginx","redis3.0","source2.0.3","zkdubbo"]}

或者浏览器访问地址 http://:5000/v2/_catalog

6.下载镜像

docker pull :5000/nginx1.8:latest

 

你可能感兴趣的:(docker)