写点什么

谷歌开源 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:003605
用户头像

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

关注

评论

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

PM求职必备软件!这10款工具助你变身Offer收割机!

职场工具箱

产品 效率工具 产品经理 求职 办公软件

03 HarmonyOS Next仪表盘案例详解(二):进阶篇

全栈若城

HarmonyOS NEXT

VideoProc Converter 4K for mac(一站式视频处理软件)v6.6中文免激活版

Rose

UltraEdit for Mac(高级文本编辑器)v23.0.0.22 英文版

Rose

Downie 4 for Mac(视频下载工具)v4.9.6最新中文版

Rose

Appple 超级体验官招募!大声说出你的宝藏 App~

声网

动手魔改属于自己的 Frida

LLLibra146

Frida Android 逆向

AI智能体的开发

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI英语学习

Cinema 4D (c4d)中文版+激活补丁合集-Mac/win

Rose

AI智能体的应用场景

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI英语学习

Hologres × PAI × DeepSeek 搭建 RAG 检索增强对话系统

阿里云大数据AI技术

人工智能 hologres rag PAI DeepSeek

AI智能体的发展前景

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI英语学习

《Operating System Concepts》阅读笔记:p179-p179

codists

操作系统

2025 Lakehouse 趋势全景展望:从技术演进到商业重构

镜舟科技

开源 架构 iceberg LakeHouse StarRocks

02 HarmonyOS Next仪表盘案例详解(一):基础篇

全栈若城

HarmonyOS NEXT

JetBrains 2024编程系列全家桶中文版 附激活补丁-Mac/win

Rose

FabFilter Total Bundle 2025 for Mac(音频插件合集)v2025.02.06直装版

Rose

Multitouch for Mac(多点触控手势增强神器)v1.27.44免激活版

Rose

Markdown 区块的妙用

NocoBase

开源 markdown 低代码 开发工具 教程

Adobe 2025系列合集(中文资源+激活补丁)Mac/win

Rose

智慧政协系统(源码+文档+讲解+演示)

深圳亥时科技

培训班招生营销平台(源码+文档+讲解+演示)

深圳亥时科技

GPU 云服务器的软件系统设计和实践

Baidu AICLOUD

GPU服务器 百度百舸 百度太行

如何在 NocoBase 中实现 CRM 的线索转化

NocoBase

开源 低代码 开发工具 教程 CRM

INFINI Labs 推出 Coco AI,携手 DeepSeek 打造下一代企业知识管理神器!

极限实验室

console Gateway easysearch CocoAI

PatterNodes 3 for Mac(矢量图形模式创建软件)v3.3.3直装版

Rose

DeepSeek部署实战:模型对比、部署优化与应用场景解析

中烟创新

数字身份新范式,IAM推动数字经济高质量发展

芯盾时代

数字身份 iam 统一身份管理平台

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