谷歌开源Docker镜像分析比对工具container-diff

谷歌发布了一个叫作container-diff的工具,用于分析比对Docker镜像。它支持文件系统比对,并能够感知到由apt、npm和pip这些包管理器所带来的变更。

Dockerfile用于创建容器镜像,一旦Dockerfile发生变更,就需要重新创建新的镜像。Dockerfile是普通的文本文件,使用源码控制系统的diff工具就可以比较出它们之间的区别。不过,要对Dockerfile文件里的命令所产生的镜像变更记进行可视化,或者列出具体的镜像变更内容就很困难。应用程序被打包到镜像之后,如果依赖了第三方特定版本的依赖项,事情就会变得复杂,况且,下游的依赖项也会让跟踪变得更加复杂。未被跟踪的依赖项会导致镜像体积膨胀,让镜像下载时间变长。

container-diff会分析镜像的“语义”差别,将结果以一种用户可理解的格式呈现给用户,这样用户就可以采取相应的行动。container-diff支持Python的pip包管理器、Linux上的apt工具以及node.js包管理器npm。另外,它还可以用于分析文件系统的变化。该工具可以一次性分析一个或几个甚至所有包管理器的内容。

在分析镜像时,可以指定本地的Docker后台路径、远程的镜像仓库地址或文件路径。如果已经使用Docker的保存命令导出镜像,那么可以使用后者。在使用该工具分析后台镜像时,镜像不需要处于运行状态。该工具还能输出单个镜像的修改历史。

其他类似的工具还有Anchore的diff工具以及Atomic项目的“atomic diff”命令。Docker的“docker history”命令只能列出每个Dockerfile的变更历史,这个只需要检查一下Dockerfile就知道了。一些反向工程可以揭示底层的一些细节,但很难将其抽取成事件,比如之前安装了哪些包。Atomic的工具可以列出文件系统的差别,而且可以用在RPM上,也就是说,它可以列出安装了哪些RPM包。另外,“atomic diff”命令可以用于比较两个容器、容器和镜像、两个镜像之间的差别。

根据谷歌的文章所述,container-diff可以成为开发流程的一部分,可以与持续集成系统集成起来,提供自动化的变更日志管理,而且它的输出结果是JSON格式的。如果镜像处于仓库当中,不管是私有仓库还是像Google Container Registry这样的仓库,container-diff都为它们提供了认证机制,这个认证机制是通过docker-credentials-helpers包来实现的。这个包使用本地程序(比如OSX上的osxkeychain)来保存Docker认证信息。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排 行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2018-01-04 10:12:34
大数据资讯 我们进入全民人工智能时代,谁会是下一个谷歌?
人工智能似乎与其他大趋势不同,比如区块链、物联网、金融科技等。当然,它的未来是不可预测的。 <详情>
2018-01-03 09:58:00
互联网 谷歌将资金转至百慕大壳公司 2016年避税几十亿美元
荷兰公布的监管备案文件显示,2016年Alphabet旗下谷歌公司将159亿欧元(192亿美元)转移到百慕大群岛壳公司,成功避税几十亿美元。 <详情>
2017-12-26 15:06:00
市场情报 2017年,阿里巴巴开源的那些事
自从2011年宣布第一波开源项目以来,阿里巴巴的技术人一直积极参与开源社区共建。开源项目数量每年都有所增长,目前阿里巴巴已经有150+个开源项目,其中数个项目star破万。 <详情>
2017-12-14 10:41:00
国际资讯 谷歌在阿拉巴马州投资6亿美元改建一个数据中心
日前据悉,谷歌公司计划投资6亿美元在阿拉巴马州杰克逊县开始建设大型数据中心设施。根据当地媒体ABC‘sWaay3的报道,其数据中心基础工作已经开始在Widows Creek煤电厂的所 <详情>
2017-12-08 11:17:00
国际资讯 谷歌公司提供支持的连接佛罗里达和巴西的Monet海底电缆即将开通
日前,连接美国博卡拉顿和巴西福塔莱萨的长达10,556公里(6,560英里)的海底电缆现已准备就绪,计划开通。 这是由谷歌,TE SubCom,阿尔加电讯(巴西),安哥拉电缆(安 <详情>