docker使用手册(5)—— 仓库构建(下)
目的
CI / CD在目前各类互联网企业中已然成为推动软件开发行为的重要基础设施服务。同样的对于测试团队来说更是有着举足轻重的重大意义,无论是测试左移的具象化提现亦或是持续测试的顺利开展,掌握这一技能已是广大软件测试工程师的必修课。分享这一技术笔记也是希望除了自己团队以外的广大测试同学们可以有体系的学习这一技能。
接上回
我们已经创建了自己的公共仓库和阿里云的私有仓库,接下来将会带大家继续创建更多的私有仓库。
私有仓库
Registry
我们之前使用的docker hub其实也是docker registry的一种,它是docker自带的集中存储与分发镜像服务。他也可以设置为公有和私有两种。当我们的测试环境受制于测试条件或网络条件的时候,就可以搭建公司内部的私有仓库,依托于内网的网络环境实现服务快速部署和切换的目的。
由于是自带的,我们可以直接使用docker run
命令进行启动
docker run -d --name registry -p 5000:5000 registry
不指定仓库位置的话,默认会创建在/var/lib/registry下,如果需要指定仓库创建的位置,使用参数v进行创建,创建规则:-v 指定路径:默认路径
docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry
如果是第一次创建,docker将会自动拉取registry
已经可以看见创建完的仓库了
现在我们需要将镜像推送到私有仓库中,但如果需要让内网中同一网段的其他终端都可以往此仓库中进行推送的话就要做以下操作:
首先,确认自己的服务器内网IP(安装registry的那台),因为我们之前启动的时候已经将服务端口印射出来了,所以其他同网段内网终端在推送镜像时将推送地址(IP+端口)设置为服务器的即可。
另外docker不允许任何非https协议方式的镜像推送方式,而我们又是内网,所以要通过修改docker的配置来规避这一限制。
编辑docker的demon.json文件
vim /etc/docker/daemon.json
在改文件内添加如下内容:
“insecure-registries”: [“服务器IP:端口号”]
这里有几个注意点,服务器与端口号均为安装了registry的那台的IP和服务端口,如192.168.10.55:5000(之前启动registry的时候印射的5000),另外如果之前添加过第三方的容器镜像加速服务的,需要注意添加的格式,文本内容为json格式,所以加在前面的话别忘记在结尾添加英文逗号分隔开,加后面的话记得在前一个键值对后添加逗号分隔。
添加完后如下图,顺序随意:
做完以上操作之后就可以从任意一台装有docker的内网同网段终端中进行镜像的推送了。
接下来就开始对镜像进行打tag操作
docker tag mysql:5.6 192.168.10.55:5000/mysql:v1
进行镜像的推送操作
docker push 192.168.10.55:5000/mysql:v1
使用curl命令来进行结果查看
curl 服务器IP:端口/v2/_catalog
显示对应的镜像名即为正确
在其他同网段终端上输入以下命令即可进行镜像的拉取
docker pull 192.168.10.55:5000/mysql:v1
- 点赞
- 收藏
- 关注作者
评论(0)