如何搭建 Docker 私有仓库?有哪些步骤?
目标
CI / CD在目前各类互联网企业中已然成为鞭策软件开发行为的重要根底设备办事。同样的关于测试团队来说更是有着无足轻重的严重意义,无论是测试左移的具象化提现亦或是持续测试的顺利开展,掌握那一技能已是广阔软件测试工程师的必修课。分享那一手艺条记也是希望除了本身团队以外的广阔测试同窗们能够有系统的进修那一技能。
接上回我们已经看了相关docker中的一些高频根底号令,关于日常的一些根本操做有了一个大致的领会和印象,接下来会和各人一路接触docker仓库的相关操做。
在测试团队的日常工做中,测试情况的一致性对测试活动、产物测试的最末成果也会起到至关重要的感化,能够说连结测试情况的一致性是测试活动顺利开展的大前提之一。
公共仓库Docker Hub 是docker公司维护的公共仓库,所有的镜像均为免费利用,无需注册,安拆docker后利用 docker search 即可搜刮里面所有的镜像。详细的其他仓库操做能够参看之前的手艺条记。
Austin-老Z:docker利用手册(3)—— 根底利用10 附和 · 0 评论文章但若是需要将你本身的镜像上传至Docker Hub上的话就需要停止以下操做。
在docker官网注册一个账号 [Docker Hub官网]
创建一个公共仓库
指定一个仓库名称后,选择创建一个公共仓库
创建完成后会跳转至已创建的公共仓库界面,上面会告诉你若何在docker中将镜像推送到你的仓库
然后我们在本身的办事器长进行docker hub的登录,利用 docker login 号令停止登录操做
显示"Login Succeeded"就申明登录胜利了登录的认证信息都在隐藏文件夹docker的config.json文件里
若是你在多个三方平台创建过公共或私有仓库,认证信息都是保留在那个文件内。
对需要推送的镜像先辈行打tag操做
docker tag 镜像名:tag 仓库途径/镜像名:tag再利用push号令停止镜像的推送
docker push 仓库途径/mysql:uat显示如上画面就申明推送胜利了。仓库里也显示已经有了该版本镜像
私有仓库 阿里云私有仓库那里我们先介绍阿里云的私有仓库创建和利用办法。相较于其他仓库,阿里云的镜像下载和上传速度都是比力不错的。
起首注册一个阿里云的账号
进入阿里云的[容器镜像办事]
在那里创建小我实例
点击创建
创建完成后,设置本身的仓库登录密码
在镜像仓库中创建新的仓库
那里的空间名只要不反复就OK,仓库名字和你要上传的镜像一致即可。
那里若是没有不指定代码源的话,就选择当地仓库
然后我们在办事器中就能够停止镜像的推送了。
在办事器中先登录阿里云的仓库
对镜像打tag
利用 docker push 来停止镜像推送
上传胜利后查看仓库
镜像已经上传胜利了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