一、什么是Docker私有仓库Registry
官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像。
二、安装Docker及Registry
安装Registry:
很简单,只需要运行一个Registry容器即可(包括下载镜像和启动容器、服务)
cat registry.sh
docker pull registry:2
echo "运行registry容器"
docker container kill registry
docker container rm registry
docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/registry --restart=always --name registry registry:2
三、如何使用Registry
我也看过其他博文,经常报的一个错误就是:
unable to ping registry endpoint https://192.168.52.130:5000/v0/
v2 ping attempt failed with error: Get https://192.168.52.130: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"]
#如:Registry机器ip为 192.168.52.130
#"insecure-registries": ["192.168.52.130:5000"]
#客户端ip为192.168.52.132
#"insecure-registries": ["192.168.52.132:5000"]
}
#systemctl daemon-reload
#systemctl restart docker
注::Registry的机器ip地址,在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。
四、通过 docker tag重命名镜像,使之与registry匹配
docker tag inits/nginx1.8 192.168.52.130:5000/nginx1.8:latest
五、上传镜像到Registry
vi etc/selinux/config
把里边的一行改为 SELINUX=Permissive,改了之后保存,然后重启。
docker push 192.168.52.130:5000/nginx1.8:latest
六、查看Registry中所有镜像信息
curl http://192.168.52.130:5000/v2/_catalog
返回:
{“repositories”:[“centos6.8”,“jenkins1.638”,“nginx”,“redis3.0”,“source2.0.3”,“zkdubbo”]}
七、其他Docker服务器下载镜像
docker pull 192.168.52.130:5000/nginx1.8:latest
八、启动镜像
docker run -d - -p 80:80 -name nginx 192.168.52.130:5000/nginx1.8:latest
九、修改tomcat配置提交到本地Registry
cat tomcatpush.sh
#!/bin/sh
echo "保存修改的tomcat容器"
docker image rm 192.168.52.130:5000/tomcat:v1
docker commit tomcat 192.168.52.130:5000/tomcat:v1
echo "push 到本地库"
docker push 192.168.52.130:5000/tomcat:v1
echo "从本地库 pull tomcat "
docker image rm 192.168.52.130:5000/tomcat:v1
docker image ls
docker pull 192.168.52.130:5000/tomcat:v1
docker image ls
echo "查看本地库"
curl http://192.168.52.130:5000/v2/_catalog