这篇文章主要讲解了“Docker私有仓库Registry怎么搭建验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker私有仓库Registry怎么搭建验证”吧!
1. 关于registry
官方的docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件registry来达成目的。
registry在github上有两份代码:和。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。
官方在docker hub上提供了registry的镜像(),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。tag为latest的registry镜像是0.9.1版本的,我们直接采用2.1.1版本。
2. registry的部署
运行下面命令获取registry镜像,
$ sudo docker pull registry:2.1.1
然后启动一个容器,
复制代码 代码如下:
$ sudo docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1
registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。
运行docker ps看一下容器情况,
lienhua34@lienhua34-compaq-presario-cq35-notebook-pc ~ $ sudo docker ps container id image command created status ports names f3766397a458 registry:2.1.1 "/bin/registry /etc/d" 46 seconds ago up 45 seconds 0.0.0.0:5000->5000/tcp registry
说明我们已经启动了registry服务,打开浏览器输入http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常,
3. 验证
现在我们通过将镜像push到registry来验证一下。
我的机器上有个hello-world的镜像,我们要通过docker tag将该镜像标志为要推送到私有仓库,
$ sudo docker tag hello-world 127.0.0.1:5000/hello-world
然后查看以下本地的镜像,
lienhua34@lienhua34-compaq-presario-cq35-notebook-pc ~ $ sudo docker images repository tag image id created virtual size registry 2.1.1 b91f745cd233 5 days ago 220.1 mb ubuntu 14.04 a5a467fddcb8 6 days ago 187.9 mb hello-world latest 975b84d108f1 2 weeks ago 960 b 127.0.0.1:5000/hello-world latest 975b84d108f1 2 weeks ago 960 b
接下来,我们运行docker push将hello-world镜像push到我们的私有仓库中,
lienhua34@lienhua34-compaq-presario-cq35-notebook-pc ~ $ sudo docker push 127.0.0.1:5000/hello-world the push refers to a repository [127.0.0.1:5000/hello-world] (len: 1) 975b84d108f1: image successfully pushed 3f12c794407e: image successfully pushed latest: digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4b size: 2744
现在我们可以查看我们本地/opt/registry目录下已经有了刚推送上来的hello-world。我们也在浏览器中输入http://127.0.0.1:5000/v2/_catalog,如下图所示,
现在我们可以先将我们本地的127.0.0.1:5000/hello-world和hello-world先删除掉,
$ sudo docker rmi hello-world $ sudo docker rmi 127.0.0.1:5000/hello-world
然后使用docker pull从我们的私有仓库中获取hello-world镜像,
lienhua34@lienhua34-compaq-presario-cq35-notebook-pc ~ $ sudo docker pull 127.0.0.1:5000/hello-world using default tag: latest latest: pulling from hello-world b901d36b6f2f: pull complete 0a6ba66e537a: pull complete digest: sha256:1c7adb1ac65df0bebb40cd4a84533f787148b102684b74cb27a1982967008e4b status: downloaded newer image for 127.0.0.1:5000/hello-world:latest lienhua34@lienhua34-compaq-presario-cq35-notebook-pc ~ $ sudo docker images repository tag image id created virtual size registry 2.1.1 b91f745cd233 5 days ago 220.1 mb ubuntu 14.04 a5a467fddcb8 6 days ago 187.9 mb 127.0.0.1:5000/hello-world latest 0a6ba66e537a 2 weeks ago 960 b
4. 可能问题
可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容,
docker_opts="--insecure-registry xxx.xxx.xxx.xxx:5000"
然后重启docker后台进程,
$ sudo service docker restart
这是再push即可。
感谢各位的阅读,以上就是“Docker私有仓库Registry怎么搭建验证”的内容了,经过本文的学习后,相信大家对Docker私有仓库Registry怎么搭建验证这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。