全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解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  # registry  # 搭建  # Docker搭建本地私有仓库的详细步骤  # Docker Registry 私有仓库搭建详细步骤  # 详解docker私有仓库搭建与使用实战  # 详解Docker私有仓库最简便的搭建方法  # Docker 搭建私有仓库(registry、harbor)  # Centos 7中Docker私有仓库的搭建方法  # 搭建Docker私有仓库(自签名方式)  # Docker搭建私有仓库(registry与Harbor)的实现  # docker私有仓库的搭建和使用详解  # 如何搭建配置Docker私有仓库的实现步骤  # 镜像  # 自己的  # 我们可以  # 这是  # 是一个  # 有个  # 也在  # 上有  # 可以通过  # 所示  # 在上面  # 看一下  # 重启  # 就到  # 会将  # 已经有了  # 这是因为  # 先将  # 将该  # 开源 


相关文章: 怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  b2c电商网站制作流程,b2c水平综合的电商平台?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何通过NAT技术实现内网高效建站?  相册网站制作软件,图片上的网址怎么复制?  建站之星下载版如何获取与安装?  建站之星如何开启自定义404页面避免用户流失?  建站主机是什么?如何选择适合的建站主机?  如何在阿里云部署织梦网站?  济南网站制作的价格,历城一职专官方网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  如何选择美橙互联多站合一建站方案?  如何在云虚拟主机上快速搭建个人网站?  建站之星如何一键生成手机站?  如何用PHP快速搭建CMS系统?  如何用好域名打造高点击率的自主建站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站之星会员如何解锁更多建站功能?  家庭建站与云服务器建站,如何选择更优?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  内部网站制作流程,如何建立公司内部网站?  制作网站的软件免费下载,免费制作app哪个平台好?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  小建面朝正北,A点实际方位是否存在偏差?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何在IIS中新建站点并解决端口绑定冲突?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  ,怎么在广州志愿者网站注册?  魔方云NAT建站如何实现端口转发?  如何快速建站并高效导出源代码?  建站之星代理如何优化在线客服效率?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何通过主机屋免费建站教程十分钟搭建网站?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  昆明高端网站制作公司,昆明公租房申请网上登录入口?  javascript基本数据类型及类型检测常用方法小结  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  Bpmn 2.0的XML文件怎么画流程图  详解jQuery中基本的动画方法  零服务器AI建站解决方案:快速部署与云端平台低成本实践  北京企业网站设计制作公司,北京铁路集团官方网站?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  公众号网站制作网页,微信公众号怎么制作?  如何快速重置建站主机并恢复默认配置?  手机网站制作与建设方案,手机网站如何建设?  建站之星后台管理如何实现高效配置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。