阅读目录

  • 目的
  • 接上回
  • 私有仓库
  • Registry


目的

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

docker仓库修改为国内地址 docker设置仓库_容器



已经可以看见创建完的仓库了

docker仓库修改为国内地址 docker设置仓库_运维_02


现在我们需要将镜像推送到私有仓库中,但如果需要让内网中同一网段的其他终端都可以往此仓库中进行推送的话就要做以下操作:

首先,确认自己的服务器内网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仓库修改为国内地址 docker设置仓库_docker仓库修改为国内地址_03


做完以上操作之后就可以从任意一台装有docker的内网同网段终端中进行镜像的推送了。



接下来就开始对镜像进行打tag操作

docker tag mysql:5.6 192.168.10.55:5000/mysql:v1



进行镜像的推送操作

docker push 192.168.10.55:5000/mysql:v1

docker仓库修改为国内地址 docker设置仓库_推送_04


使用curl命令来进行结果查看

curl 服务器IP:端口/v2/_catalog

docker仓库修改为国内地址 docker设置仓库_docker仓库修改为国内地址_05


显示对应的镜像名即为正确


在其他同网段终端上输入以下命令即可进行镜像的拉取

docker pull 192.168.10.55:5000/mysql:v1