搭建一个私有registry服务
先从简单的开始说起.
官方的Docker Hub是一个用于管理公共镜像的好地方,可以在上面找到我们想要的镜像,也可以把我们的镜像推送上去.但是有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的.
Registry的部署
sudo dao pull registry
启动一个容器
sudo docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
查看一下容器运行的状态
syx@syx-VB:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29c3e5ab6ac7 registry "docker-registry" 33 minutes ago Up 24 minutes 0.0.0.0:5000->5000/tcp registry
打开宿主机的浏览器!输入127.0.0.1:5000只要出现的情况和你的想法很相似就可以了!说明registry运行正常.
验证一下
我们通过将镜像push到registry来验证一下.
我的机器上有个busybox镜像.这个镜像时根据busybox这个镜像.我们通过tag将该镜像标志为要推送到私有仓库.
syx@syx-VB:~$ sudo docker tag busybox 127.0.0.1:5000/syx/test_df
接着使用docker images验证一下看看是否存在我们将要推送的镜像.
好了!准备工作做完了,我们运行docker push将127.0.0.1:5000/syx/test_df镜像push到我们的私有仓库中.
syx@syx-VB:~/dockerfile/df_test1$ sudo docker push 127.0.0.1:5000/syx/test_df
The push refers to a repository [127.0.0.1:5000/syx/test_df] (len: 1)
Sending image list
Pushing repository 127.0.0.1:5000/syx/test_df (1 tags)
487bffc61de6: Image successfully pushed
acb8e44f43fa: Image successfully pushed
202e40f8bb3a: Image successfully pushed
b0c2dfa2701f: Image successfully pushed
17b6a9e179d7: Image successfully pushed
Pushing tag for rev [17b6a9e179d7] on {http://127.0.0.1:5000/v1/repositories/syx/test_df/tags/latest}
我们可以在本地删除127.0.0.1:5000/syx/test_df镜像了.
syx@syx-VB:~/dockerfile/df_test1$ sudo docker rmi 127.0.0.1:5000/syx/test_df
Untagged: 127.0.0.1:5000/syx/test_df:latest
使用docker images验证一下没有127.0.0.1:5000/syx/test_df这个镜像了,接着我们使用
syx@syx-VB:~/dockerfile/df_test1$ sudo docker pull 127.0.0.1:5000/syx/test_df
成功的pull下来了.
Using default tag: latest
Pulling repository 127.0.0.1:5000/syx/test_df
686477c12982: Download complete
dd25ab30afb3: Download complete
a83540abf000: Download complete
630aff59a5d5: Download complete
cdc870605343: Download complete
Status: Image is up to date for 127.0.0.1:5000/syx/test_df:latest
127.0.0.1:5000/syx/test_df: this image was pulled from a legacy registry. Important: This registry version will not be supported in future versions of docker.
如果你在push镜像的时候出现问题,可能是因为我们启动的registry服务不是安全可信赖的.这个时候我们需要修改docker的配置文件/etc/default/docker,添加下面的内容:
DOCKER_OPTS=”--insecure-registry 127.0.0.1:5000”
然后重启docker服务
sudo service docker restart
这时再push就可以了.
对于初学者的楼主来说,Docker Hub只允许你有一个免费的私有库.如果你需要部署基于Docker的生产环境,你也不想将这些镜像发布到公开的Docker Hub中.
这是一个非常务实的用来处理搭建私有Docker registry的方法的复杂过程.
楼主在注册的部分就出现了问题,楼主不明白为啥老外的网站注册一个东西还需要信用卡,楼主谈起信用卡就来气,具体为啥请看前面!!!
楼主也想弄一个亚马逊,DO的registry.但是楼主才疏学浅不会弄.