博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker Registry2.3的Cross Repository Push
阅读量:6587 次
发布时间:2019-06-24

本文共 1457 字,大约阅读时间需要 4 分钟。

Registry介绍

Docker用户肯定都是pull过镜像,这是最基本的Docker操作。Pull镜像就是把镜像从Registry下载到本地的过程。Registry是Docker的镜像存储、分发服务。Docker官方提供了默认Registry服务,第三方也可以部署自己的Registry服务。阿里云Hub服务使用的就是自己的Registry服务,因为在国内,所以Pull、Push镜像都很快。

Registry1到2

目前Docker Registry有两个版本: v1和v2。Docker的向后兼容做的很差,v2和v1的registry变化很大,完全不兼容。Docker1.6开始支持v2,后续版本会放弃对v1的支持,只支持v2。目前阿里云Hub服务提供的是v2版本的registry,需要使用docker1.6+.

Registry2.3的Cross Repository Push

终于说到本文的重点了。Registry2.3之前,Docker Registry一直不支持跨Repository之间的层共享。举个栗子:我从阿里云Hub pull了一个Ubuntu的镜像 registry.aliyuncs.com/acs-sample/ubuntu,基于这个镜像构建了我自己的应用镜像:registry.aliyuncs.com/jiangjizhong/myapp,然后registry.aliyuncs.com/jiangjizhong/myapp push回阿里云hub服务。

cd myappdocker pull registry.aliyuncs.com/acs-sample/ubuntudocker build -t registry.aliyuncs.com/jiangjizhong/myapp .docker push registry.aliyuncs.com/jiangjizhong/myapp

可以看到,Docker会把registry.aliyuncs.com/jiangjizhong/myapp对应的所有数据全部推送到Hub服务上,包括Ubuntu对应的层。很多人可能会疑惑:Ubuntu明明已经在Hub上了,为什么不重用,还要再推过去一次?确实,不过Docker就是这么做的。我自己的应用可能很小,大量的时间花费在Push Ubuntu上了。考虑另外一个场景:我们有持续集成环境,基于我们自己的Base镜像,把每个应用都构建成Docker镜像,Push到Hub上去,由于镜像数量很多,每个应用都是要Push一次Base镜像,浪费了大量的时间。

2.3 Registry终于解决了这个问题:可以跨Repository共享层。上面的例子中,可以不再多次Push Base镜像,而可以利用Registry里已有的镜像。

不过还是有很多要注意的点。

  • 首先,Docker的版本要升级到1.10+,低版本的Docker不支持这个功能。
  • 其次,是否重新Push Base镜像是由本地的Docker决定的,而不是Registry。Docker怎么知道Registry上有没有Base镜像呢?它判断的方式也比较简单:如果已经Push过一次,Registry上肯定存在了这个层,如果曾经Pull过,Registry上肯定也存在这个层。Docker会保存这些信息,再根据这些信息判断是否重用Registry上层。因此,如果你是刚刚安装的Docker,Push镜像一定会全部层都Push一次。

转载地址:http://fwrno.baihongyu.com/

你可能感兴趣的文章
linux 清除内存和Cache方法
查看>>
Linux启动提示Kernel panic - not syncing: Attempted to kill init解决办法
查看>>
类类型间的转换
查看>>
ASPNetCore MVC ModelValidation-ajax
查看>>
【java虚拟机序列】java中的垃圾回收与内存分配策略
查看>>
png图片 透明区域如何 让其不响应鼠标事件?
查看>>
Lua学习笔记(1)
查看>>
BarTender怎么打印公式化的三列标签
查看>>
数据结构顺序字符串
查看>>
《算法导论》读书笔记之第10章 基本数据结构之二叉树
查看>>
C#结构体
查看>>
SVN四部曲之SVN设置详解深入
查看>>
MS-SQL的智能脚本智能提示失效丢失
查看>>
JS回调函数--简单易懂有实例
查看>>
C语言基础:for循环演示源码,字符循环和浮点数循环
查看>>
迈克菲实验室:Flame病毒的深度分析
查看>>
移动互联网初创型团队需要什么样的云计算服务?
查看>>
ssh信任
查看>>
【转载】用备份进行Active Directory的灾难重建:Active Directory系列之三
查看>>
nginx+lua+redis实现post请求接口之黑名单(一)
查看>>