容器镜像差异分析工具 container-diff

news2024/11/25 18:55:15

概述

container-diff 是google出的一个容器差异比较工具,通过这个工具可以比较两个镜像之间存在的文件差异、RPM包差异、apt包差异、pip包差异和node包差异。
container-diff 也包括了对单个镜像分析能力,像文件分析啊、apt包、rpm包分析等功能。
在日常工作中,如果我们想知道一个镜像的新旧版本之间有哪些变更,或者面对两个类似的镜像不知道该用哪一个的时候,就可以使用这个工具来分析比较一下差异,我们就能更加深入得了解镜像内部。

安装

各个操作系统最新的安装包可以到github上下载 container-diff仓库地址

MAC


curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-darwin-amd64 && \
sudo install container-diff-darwin-amd64 /usr/local/bin/container-diff

Linux

curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-linux-amd64 && \
sudo install container-diff-linux-amd64 /usr/local/bin/container-diff

Windows

windows 可以直接下载exe安装包
地址: https://storage.googleapis.com/container-diff/latest/container-diff-windows-amd64.exe

使用

container-diff可以支持远程镜像分析,和本地镜像分析,在使用的时候,如果是本地镜像,需要在镜像名前面加 daemon://前缀,如果是远程镜像仓库的需要加remote:// 前缀

container-diff 主要有两个子命令, analyzediff 分别是分析镜像 和 比较镜像。

分析镜像

分析镜像使用 analyze 子命令,使用方式如下:

# 分析镜像,输出镜像的名称、摘要和占用磁盘大小
container-diff analyze <img> 
# 输出镜像历史构建记录
container-diff analyze <img> --type=history 
# 输出镜像所有的文件
container-diff analyze <img> --type=file
# 输出镜像大小
container-diff analyze <img> --type=size
# 输出镜像安装的rpm包
container-diff analyze <img> --type=rpm
# 输出镜像安装的pip包
container-diff analyze <img> --type=pip
# 输出镜像安装的apt包
container-diff analyze <img> --type=apt 
# 输出镜像安装的nodeJs包
container-diff analyze <img> --type=node 
# 可以同时输出多种包
container-diff analyze <img> --type=apt --type=node 

例如分析nginx镜像安装了哪些apt包,注意 本地镜像需要加 daemon://前缀

container-diff analyze  daemon://nginx --type=apt

输出如下:
在这里插入图片描述

比较镜像

比较镜像差异,使用的是diff子命令,使用方式如下:

# 默认比较两个镜像的占用磁盘大小
container-diff diff <img1> <img2>
# 比较两个镜像的历史构建记录
container-diff diff <img1> <img2> --type=history
# 比较两个镜像的文件差异,包括新增的文件、删除的文件、修改的文件
container-diff diff <img1> <img2> --type=file
# 比较两个镜像的占用磁盘大小,即默认行为
container-diff diff <img1> <img2> --type=size
# 比较两个镜像的rpm包差异
container-diff diff <img1> <img2> --type=rpm
# 比较两个镜像的pip包差异
container-diff diff <img1> <img2> --type=pip
# 比较两个镜像的apt包差异
container-diff diff <img1> <img2> --type=apt
# 比较两个镜像的nodejs包差异
container-diff diff <img1> <img2> --type=node

例如,分析nginx:1.24 和 nginx:1.25 这两镜像升级后变更了哪些文件,可以使用如下命令

container-diff diff  daemon://nginx:1.25 daemon://nginx:1.24 --type=file

输出如下:
在这里插入图片描述

存在问题

通过一段时间的使用,发现container-diff 对镜像的文件系统差异比较,有时候不能完全比较出来,所以对于出的结果,仅做参考,不能保证百分百正确。
同时这个项目虽然是谷歌的项目,但是并没有得到google的官方支持,已经有好几年没有更新了,基本上是处在维护状态,社区也不是很活跃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫——怎么搭建和维护一个本地IP池

目录 背景 一、什么是本地代理IP池 二、代理IP池功能架构图 三、各个组件功能说明及示例代码 1. IP池管理器 2. 代理IP获取器 3. IP质量检测器 4、数据存储器 5、API接口层 6、应用程序 总结 背景 在我们进行爬虫工作时&#xff0c;经常需要使用代理IP。大多数代理…

unity2d粒子特效

文章目录 前言先看效果一、2d平台雨1. 配置2. 图片素材3. 最终效果 二、脚步灰尘效果1. 配置2. 代码调用3. 效果 三、受伤血液四溅效果1. 配置2. 效果 待续四、工程源码五、参考六、完毕 前言 我只是我抽空写了一些简单的2d粒子特效&#xff0c;后面如果接触新的不错的2d特效&a…

Maven 安装

一. 下载 apache官网下载 Maven&#xff1a;Maven – Download Apache Maven &#xff0c;根据需要下载不同压缩包。 将压缩包进行解压&#xff0c;最好放在无中文目录下解压。 二. 安装 三. 配置 1. 配置maven本地仓库 打开解压后的文件夹&#xff0c;找到conf文件夹&#…

银行vr元宇宙全景虚拟展馆提供更加真实、立体、高效的数字资产交易场景

为了贯彻国家普惠金融政策&#xff0c;使金融如无惠及广大群体,宇宙技术在金融行业中的应用将进一步提升金融消费体验感觉和金融管理水平。打造元宇宙金融服务平台&#xff0c;构建虚实结构的金融服务世界&#xff0c;培育和管理好数字机器人员工队伍&#xff0c;提升金融业务各…

postman登录鉴权之接口测试

一.背景 在做接口测试的时候&#xff0c;有些接口向后台请求数据的时候&#xff0c;是需要用户在登录情况下才有数据返回。 以电商平台为例&#xff0c;用户的个人中心&#xff0c;用户的订单列表&#xff0c;用户的支付信息等等&#xff0c;所有用户维度的数据都是需要登录态…

Django - 页面静态化和crontab定时任务(二)

一. 前言 一个网页会有很多数据是不需要经常变动的&#xff0c;比如说首页&#xff0c;变动频率低而访问量大&#xff0c;我们可以把它静态化&#xff0c;这样就不需要每次有请求都要查询数据库再返回&#xff0c;可以减少服务器压力 我们可以使用Django的模板渲染功能完成页面…

app反编译查看是否被混淆或者混淆是否成功

同时打 debug包和release包&#xff0c;生成的目录在build->output文件夹下面 一般直接运行的apk 包是在build/intermediates/apk/debug 目录下 方法1&#xff1a;Android studio 安装插件jadx build成apk 后 直接选中 右键 在Jadx GUI中反编译 就可以查看代码 方法2&…

距离保护的影响因素

1、汲出电流和助增电流的影响 当保护安装处与故障点之间有分支电源时&#xff0c;如图所示&#xff0c;分支电源将向故障点K送短路电流ICB&#xff0c;使流过故障线路的电流IBKIAB ICB&#xff0c;大于实际流过保护1的电流IAB&#xff0c;所以ICB称作助增电流。 由于助增电流的…

第一章操作系统引论

目录 一、熟悉的操作系统 二、计算机系统的层次结构 三、操作系统的概念 四、操作系统的功能 4.1 系统资源的管理者 4.2 向上层提供方便易用的服务 4.2.1 GUI&#xff1a;图形化用户接口&#xff08;Graphical UserInterface&#xff09; 4.2.2 命令接口 4.2.3 程序接…

当杠精型AI丈夫遇上阴阳怪气AI老婆,你的代码玩得转吗?

玩趣味活动 赢千元奖金 DataFountain社区首个趣味活动来啦&#xff01;&#xff01;&#xff01; 活动已发车&#xff0c;来不及解释了&#xff0c;先上车&#xff1a;https://www.datafountain.cn/information/activity/3 人工智能问答爆火&#xff0c;你的算法技能储备跟上…

达梦数据库ODBC配置及达梦与mysql创建DBLINK测试

目录 官网ODBC配置... 3 1、ODBC下载官网... 3 2、上传安装包并解压... 3 3、安装odbc. 3 4、安装依赖... 4 5、再次执行安装即可... 4 6、查看版本及配置文件... 4 Mysql-ODBC配置... 5 一、达梦服务器... 5 1、下载odbc包... 5 2、安装... 6 3、报错... 6 4、先…

STM32——01-开发软件Keil5及STM32CubeMX的安装

1.1开发环境的安装 编程语言&#xff1a;C语言 需要安装的软件有两个&#xff1a;Keil5和STM32CubeMX 安装 安装包&#xff08;不需要太新&#xff0c;以 MDK324 为例&#xff0c;最新的 MDK327 有问题&#xff09; 安装过程一路下一步即可&#xff08;建议不要安装在 C …

Gitlab集成jira

实现功能 gitlab提交和合并分支&#xff0c;会自动将comment信息提交到JIRA上的相关问题的页面gitlab可以修改jira上问题的状态 集成说明 gitlab集成Jira 按项目集成&#xff0c;因此gitlab上的每个项目对应jira上的对应项目由项目管理员&#xff08;一般为接口人&#xff…

如何用Python开发QQ机器人

前言 虽然该文最终是达到以python开发mirai机器人的目的&#xff0c;但起步教程&#xff0c;尤其是环境配置上仍然有大量的相同操作&#xff0c;对其他编程语言仍有借鉴之处 假设你已经安装好了 Java、Python等运行必须的环境 mirai生态 mirai官方生态文档 要使用mirai开发…

【tableau】基础图形绘制

4.5 文字云 第一步&#xff1a; 想要突出显示的字段拖入 “标签”&#xff0c;如 客户名称 第二步&#xff1a; 展示大小的字段拖入“大小”&#xff0c;默认黑色 第三步&#xff1a;展示大小的字段拖入“颜色”&#xff0c;颜色不是喜欢的&#xff0c;可以右侧编辑颜色 4.6…

Vue中如何进行地图展示与交互(如百度地图、高德地图)?

Vue中如何进行地图展示与交互 随着移动互联网的普及&#xff0c;地图应用已经成为人们生活中不可或缺的一部分。在Vue.js中&#xff0c;我们可以使用第三方地图库&#xff08;如百度地图、高德地图&#xff09;来实现地图的展示和交互。本文将介绍如何在Vue.js中使用百度地图和…

IDEA整合GO并传module工程

IDEA整合Go 安装包环境配置idea配置并创建test mode 安装包 1.去官网下载对应还的安装包 官网下载地址 我选择下载的window 版本&#xff1a; 直接按照对应的目录&#xff0c;然后点击下一步 环境配置 1.配置go环境变量 在高级环境变量PAHT中添加安装包的**/bin 目录&…

主流自动化测试框架,这5种真的帮助巨大。

今天我们要向大家介绍的是常见5种主流自动化测试框架&#xff0c;包括优缺点等内容&#xff0c;供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架&#xff0c;可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台&#xff0c;通过集成自动化…

想必大家都为测试用例头疼过,那么如何才能设计出一个“好的”测试用例

目录 前言&#xff1a; “好的”测试用例具备的特征 1&#xff0e;等价类划分方法 2&#xff0e;边界值分析方法 “好的”测试用例的设计方法 测试用例设计的其他经验 作为测试人员&#xff0c;需要注意以下几点&#xff1a; 前言&#xff1a; 设计一个“好的”测试用例&…

c++学习——模板

模板 **模板的概念****函数模板的语法****函数模板注意事项****函数模板案例****普通模板和函数模板的区别****普通函数和函数模板的调用规则****模板的局限性****类模板****类模板和函数模板的区别****类模板中成员函数创建时机****类模板对象做函数参数****类模板与继承****类…