简介
dive
是由 Alex Goodman 用 Go 开发的 Docker 镜像探查工具。它提供可视化图形界面,能分析 Docker 镜像的内容和层次结构,如浏览镜像中的文件和目录信息、查看每层镜像内容的文件变更情况、进行安全性检查等。
对于需要深入分析和优化 Docker 镜像的开发者和运维人员,dive
能帮你更高效地优化 Docker 或 OCI 镜像,检查镜像中潜在的风险;对于学习 Docker 的新手,它能帮你更好地查看 Docker 镜像的层次结构,加深对 Docker 镜像原理的理解。
快速上手
-
安装
dive
:eval "$(curl https://get.x-cmd.com)" # 安装 x-cmd x env use dive # 使用 x-cmd 安装 dive
-
使用
dive
查看指定镜像:dive ubuntu:latest # 使用 dive 查看指定镜像,如 ubuntu:latest 镜像 dive --ci ubuntu:latest # 不启用可视化界面,直接输出分析结果
-
常用快捷键:
q
:退出 dive UI 界面;tab
:将视图切换至镜像层或文件树;Ctrl-F
:过滤文件。
-
(补充)dive UI 界面展示的内容大致可分为四块:
- Layers:显示镜像的每个分层基本信息,如分层占用的磁盘大小和相应的命令;
- Layer Details:显示所选中镜像层的详细信息,如 Id、sha256 值;
- Image Details:显示镜像的详细信息,如镜像名、镜像大小、空间利用率;
- Current Layer Contents:显示每个镜像分层对镜像的文件系统带来的改变,其中绿色代表新增的文件、黄色代表被修改的文件、红色代表已被删除的文件。
功能特点
- 层分析:能直观地展示每个镜像分层的信息和对镜像的文件系统带来的改变,并用颜色区分更改、添加或删除的文件。
- 文件系统浏览:支持浏览镜像中的文件系统,能查看每个文件和目录的详细信息。
- 镜像优化:可以提供镜像优化建议,以帮用户减小镜像的大小,例如合并层或删除不必要的文件。
- CI Integration:支持在持续集成过程中自动化分析 Docker 镜像的效率并评估空间浪费情况。
竞品和相关项目
- slimtoolkit/slim:用 Go 开发的 Docker 镜像优化工具,能自动分析应用程序的依赖关系,识别并去除不必要的文件和库,从而生成更精简的镜像,适合需要优化和缩小 Docker 镜像的场景。
- lazydocker:Docker 命令的终端图形界面,能实时监控 docker 的各种信息并进行管理操作,界面简单易懂,特别适合需要频繁操作多个容器的场景。
- grype:容器镜像漏洞扫描工具,用于检测容器镜像中的安全漏洞。它也支持扫描容器的软件清单(SBOM),并提供有关漏洞的详细信息。
- syft:镜像和文件系统分析工具,用于从容器映像和文件系统生成软件物料清单(SBOM)。
进一步阅读
- dive 源代码 - dive 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 dive 和参与社区贡献。
- Dive - Analyze Docker Images - 主要讲解了 docker 镜像大小的优化和 dive 的用法,浅显易懂。
更多内容请查阅 : pkg/dive
转载请标明原文链接 :https://www.x-cmd.com/pkg/dive
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法