Linux 命令速查
云原生 man dive

dive

交互式容器镜像分层分析工具

返回

补充说明

dive 命令 是一个用于探索容器镜像各分层内容的交互式命令行工具,帮助开发者直观了解镜像中每一层占用多少空间、新增/修改/删除了哪些文件。它是 Docker 镜像瘦身的常用分析手段,支持 Docker、Podman 以及 Docker Registry 中的镜像。

dive 的界面分为两层:左侧显示镜像的分层列表,右侧显示选中层在文件系统中的变化(新增、修改、删除的文件及其大小),底部还提供每层累计大小的统计。通过方向键可以在各层之间移动,直观定位体积异常的层。

dive 还支持 CI 模式:加 --ci 参数后以非交互方式运行,根据镜像效率(浪费空间比例)和设置的阈值(如 --ci-waste-percent)输出检查结果并返回非零退出码,适合集成到构建流水线中自动检查镜像体积。注意事项:dive 分析的是镜像的只读层,不涉及容器运行状态;需要本地能访问 Docker/Podman 或镜像仓库。

语法

dive [选项] [镜像名]

选项

--ci                # 非交互 CI 模式,输出约束检查结果
--ci-waste-percent=百分比  # CI 模式下浪费空间比例上限(默认 0.05)
--ci-image-size=大小       # CI 模式下镜像大小上限字节数
--source=source       # 镜像来源:docker / podman / registry(默认 docker)

实例

# 交互式分析本地镜像
dive nginx:latest

# 分析指定 registry 中的镜像
dive --source registry registry.example.com/myapp:v1

# CI 模式检查镜像体积约束(违反则退出码非零)
dive --ci --ci-waste-percent=0.02 --ci-image-size=200000000 myapp:v1

# 导出镜像层分析图像
dive --export /tmp/dive-output.png myapp:v1