搭建私有docker镜像仓库
环境
centos6.5(已升级内核至3.10)
registry:2.1.1
背景
对于docker公有镜像来说,大家一般都用hub.docker.com来存放镜像,并在此仓库中查找官方以及私人公开的一些镜像,但此仓库经常出现网速很慢,所以对于我们私有镜像来说,可以存放在私有镜像仓库,所以需要搭建一个私有的镜像仓库。
搭建步骤
#docker pull registry:2.1.1
目前还没有找到lastest版本(或者我从官方下载时链接超时了),所以还需要加上这个版本号。
docker run -d -v /new/work/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1
–restart=always这个参数应该是用于重启的,即容器出现问题或关闭时自动重启,我这里启动时没加这个参数。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ecd2324364d9 registry:2.1.1 "/bin/registry /etc/ 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp registry
说明我们已经启动了registry服务,打开浏览器输入http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常,
应用
以haproxy为例,将镜像上传至私有仓库。
首先需要将镜像打标签
#docker tag haproxy 127.0.0.1:5000/haproxy
然后push镜像
#docker push 127.0.0.1:5000/haproxy
检查是否push成功,在网页中打开http://127.0.0.1:5000/v2/_catalog,显示如下即为成功
其他服务器中想要pull这个镜像,可以使用
#docker pull 127.0.0.1:5000/haproxy
常见问题
偶尔会遇到无法push镜像到私有仓库,那是因为启动的私有镜像仓库registry不是可信赖的,需要添加如下代码至/etc/default/docker文件中
DOCKER_OPTS=”–insecure-registry xxx.xxx.xxx.xxx:5000″
然后重启docker
service docker restart