
wagoodman/diveDive是一个开源的Docker镜像分析工具,旨在帮助开发者和运维人员深入探索Docker镜像的内部结构,查看各层内容,并识别可优化的空间,从而有效减小镜像体积。通过交互式界面和详细的层对比分析,Dive简化了镜像优化流程,是Docker镜像构建和优化的得力助手。
无需本地安装,直接通过Docker容器运行Dive:
bashdocker run --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest [镜像名或ID]
示例:分析本地nginx:alpine镜像
bashdocker run --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest nginx:alpine
从GitHub Releases下载对应版本的二进制文件,添加执行权限后即可使用:
bash# 示例:Linux amd64系统(替换为最新版本号) curl -LO [***] tar -zxvf dive_0.11.0_linux_amd64.tar.gz chmod +x dive sudo mv dive /usr/local/bin/
bashdive [镜像名或ID]
示例:分析本地ubuntu:20.04镜像
bashdive ubuntu:20.04
bashdive [仓库地址]/[镜像名]:[标签]
示例:分析Docker Hub上的python:3.9-slim镜像
bashdive python:3.9-slim
bashdive --source tar [tar文件路径]
启动Dive后进入交互式界面,主要操作如下:
Tab切换至此区域。
↑/↓:移动光标;Enter:展开/折叠目录;Ctrl+A/Ctrl+E:跳转至顶部/底部。Tab切换至此区域。
↑/↓:切换层;Space:展开/折叠层详情。q退出,?查看帮助,Ctrl+C强制退出。| 参数 | 说明 |
|---|---|
--no-cache | 禁用缓存,强制重新处理镜像(适用于远程或更新后的镜像) |
--ci | 启用CI模式,非交互式运行并检查镜像大小(默认阈值:大小增加10%) |
--json | 以JSON格式输出分析结果 |
--source | 指定镜像源:docker(默认)、tar(tar文件)、registry(远程仓库) |
--threshold | CI模式下允许的镜像大小增加阈值(百分比,默认10) |
bashdive --ci --threshold 5 nginx:alpine
若镜像大小增加超过5%,命令返回非0退出码,CI流程可据此判断失败。
DOCKER_HOST:指定Docker引擎地址(默认/var/run/docker.sock),适用于远程Docker环境分析。示例:分析远程Docker引擎上的镜像
bashDOCKER_HOST=tcp://remote-docker:2375 dive nginx:alpine
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务