1.首先已经有docker registry的源码,在源码中的dockerfile中build一个新的image
2.build完成后可以在docker images中查看刚build的image
3.启动docker registry,让其后台运行~并将registry的5000端口映射到本机的5000端口
至此docker registry已经启动,接下来将我们自己的镜像push上去
特别注意:
docker 中用镜像的标签来表示镜像的实际存储的位置:
如果想要push某个[image]到某个[registry:port/repository:tag]
registry:port:准备上传的registry服务器和端口
repository:tag 标识当前待上传的镜像
则在push这个image之前必须将其重命名为:
docker tag [待上传image的当前tag] [registry:port/repository:tag]
4.执行上述上传步骤后仍会报错,原因是在docker deamon的配置文件中没有加上当前的registry服务器【注:所有的registry服务器都必须写在docker deamon的配置文件里】在--insecure-registry 选项中加上,然后重启docker deamon ,docker deamon就会允许访问当前的registry服务器
具体步骤如下;
1).修改docker deamon 的配置文件:
<span style="font-size:18px;">sudo vim /etc/defaults/docker
</span>
<span style="font-size:18px;"><br style="background-color: inherit;" /></span>
原本的配置是这样的:
DOCKER_OPTS="-H unix:///var/run/docker.sock --dns 8.8.8.8 --dns 8.8.4.4 --insecure-registry jadetest.cn.ibm.com:5000"
通过--insecure-registry增加一台registry服务器:
DOCKER_OPTS="-H unix:///var/run/docker.sock --dns 8.8.8.8 --dns 8.8.4.4 --insecure-registry jadetest.cn.ibm.com:5000 --insecure-registry 9.119.148.207:5000"
2).重启docker deamon:
<span style="font-size:18px;">sudo service docker restart
</span>
push自己的image:
docker push [TAG] //刚修改的tag
就可以push成功了
若要在另外一台机器上想pull我们刚push的image,可以用
docker pull [TAG] //因为我们的docker tag 中已经包含了registry服务器的地址,端口和repository,因此不需要增加任何参数就可以直接将我们上传的iamge pull 下来