
简介
container-diff是google开源的一款用于分析和比较Docker镜像的工具,它可以从多个维度分析一个或者比较两个容器镜像:
- 镜像构建历史
- 镜像文件系统
- 镜像大小
- 软件包管理
安装
macOS
curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-darwin-amd64 && chmod +x container-diff-darwin-amd64 && sudo mv container-diff-darwin-amd64 /usr/local/bin/container-diff
Linux
curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-linux-amd64 && chmod +x container-diff-linux-amd64 && sudo mv container-diff-linux-amd64 /usr/local/bin/container-diff
# or
curl -LO https://storage.googleapis.com/container-diff/latest/container-diff-linux-amd64 && chmod +x container-diff-linux-amd64 && mkdir -p $HOME/bin && export PATH=$PATH:$HOME/bin && mv container-diff-linux-amd64 $HOME/bin/container-diff
Windows
下载地址:storage.googleapis.com/container-d…
下载exe文件重命名为container-diff.exe,添加到系统环境变量Path中。
使用
分析单个Docker镜像
container-diff analyze <image-name>
对比两个Docker镜像
container-diff diff <image1-name> <image2-name>
如果不指定type,默认分析/对比的是镜像大小,即--type=size
可以通过指定type,分析/对比特定维度
container-diff analyze <image-name> --type=<type-name>
container-diff diff <image1-name> <image2-name> --type=<type-name>
type类型支持如下:
- history:镜像构建历史
- file:镜像文件
- size:镜像大小
- rpm:rpm包管理器
- pip:pip包管理器
- apt:apt包管理器
- node:node包管理器
通过设置多组type,可以一次性分析/对比多个维度,例如:
container-diff analyze nginx --type=history --type=size
通过设置--type=file和--filename=/path/file,可以比较比较两个docker镜像中某目录或文件的区别,例如:
container-diff diff nginx:v1 nginx:v2 --type=file --filename=/etc/
通过设置-j,可以使用json格式输出结果。
通过设置-w <file-path>,可以将结果输入到文件。
更多命令参数可以通过-h解锁。
