如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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

  • 2017-11-29
  • 本文字数:1018 字

    阅读完需:约 3 分钟

谷歌发布了一个叫作 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 认证信息。

查看英文原文 container-diff - an Open Source Tool from Google for Analyzing Differences Between Docker Images

2017-11-29 18:003809
用户头像

发布了 322 篇内容, 共 156.5 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

手把手教你在 Spring Boot 中实现 AOP

Liam

Java 程序员 Spring Boot 后端 aop

SD-WAN解决方案七大便利点

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

SD-WAN在金融行业的重要性

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

Edge浏览器兼容性问题如何修复,这篇文章告诉你

霍格沃兹测试开发学社

零基础入门NLP - 新闻文本分类比赛方案分享 nano- Rank1

阿里云天池

阿里云

visionOS 专门应用提交数大幅下降;Kimi 不断「吊打」国内各大厂 AI 模型丨 RTE 开发者日报 Vol.180

声网

SD-WAN为出海电商提供了什么支持

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

从基础到高级,带你深入了解和使用curl命令(四)

霍格沃兹测试开发学社

【IJCAI-2018】搜索广告数据探索与可视化

阿里云天池

阿里云

测试领域革新:ChatGPT助你轻松编写测试方案!

测吧(北京)科技有限公司

测试

一本书了解AI的下一个风口:AI Agent

博文视点Broadview

企业上了MES系统后,能有什么好处?

万界星空科技

生产管理系统 mes 万界星空科技

EMQX Enterprise 5.6 发布:新增 Amazon S3 数据集成、JSON Schema 验证函数

EMQ映云科技

mqtt emqx mqtt broker

“翼”马当先!混合云价值影响力领导者!

天翼云开发者社区

人工智能 云计算 云服务

低代码开发有哪些优势?

万界星空科技

低代码开发 低代码平台 mes 万界星空科技

碳视野|新能源产业链看过来! 欧盟关键原材料法案生效!

AMT企源

数字化转型 新能源 双碳 碳管理

真的假的!有个物联网公司通过自建数据库省了 98% 的云成本?!

小猿姐

数据库 云计算 aurora

天池医疗AI大赛[第一季] Rank5解决方案

阿里云天池

阿里云

如何找到香港虚拟主机5元一月的方案?

一只扑棱蛾子

香港虚拟主机

人社大赛算法赛题解题思路分享+季军+三马一曹团队

阿里云天池

阿里云

不要在自我提升方面吝啬

老张

自我提升 能力提升

猫头虎博主深度探索:Amazon Q——2023 re:Invent 大会的 AI 革新之星

亚马逊云科技 (Amazon Web Services)

re:Invent 亚马逊云科技 生成式人工智能 Amazon SageMaker Amazon Q

物联网中的预测分析:当IoTDA遇上ModelArts

华为云开发者联盟

物联网 华为云 华为云ModelArts 华为云开发者联盟 企业号2024年4月PK榜

大型央国企“信创化”与数字化转型的建设思路

优秀

信创 央国企数字化转型

消息队列选型之 Kafka vs RabbitMQ

字节跳动云原生计算

kafka 消息列队

云行| 算赋山城,天翼云智启数字重庆智慧新篇!

天翼云开发者社区

人工智能 云计算 智算中心

提高 AI 训练算力效率:蚂蚁 DLRover 故障自愈技术的创新实践

可信AI进展

开源 算力 DLRover

AI 数据观 | 大模型私有化部署落地过程中,那些容易被忽视的“数据集成”难题

tapdata

生成式 AI 应用 大语言模型集成 企业 AI 应用

从基础到高级,带你深入了解和使用curl命令(三)

霍格沃兹测试开发学社

二手车价格预测第十三名方案总结

阿里云天池

阿里云

谷歌开源Docker镜像分析比对工具container-diff_Linux_Hrishikesh Barua_InfoQ精选文章