今天推荐一个这样的开源工具,用于探索 Docker 镜像,各层内容以及发现缩小 Docker/OCI 镜像大小的方法。这个工具就是:dive。
工具地址:https://github.com/wagoodman/dive,Star 数:22k+。
这个工具可以清晰得看到镜像每一层都包含哪些内容,方便你分析是否有必要,如下图所示。
特性
该工具的主要特性包括:
按层显示 Docker 镜像内容; 指出每一层的变化; 评估 “镜像的效率”; 快速的构建/分析周期; 和 CI 集成;安装和使用
1、主要采用docker运行dive的方式,具体用法可查看官方:
https://github.com/wagoodman/dive
2、拉取dive镜像
docker pull quay.io/wagoodman/dive:latest
3、通过docker运行dive查看镜像层信息
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/wagoodman/dive:latest \
nginx:latest
备注:最后面的nginx:latest就是要查看的镜像名称或者直接换成镜像ID也可以,打开界面如下:
KeyBindings
Key Binding | Description |
---|---|
<kbd>Ctrl + C</kbd> | 退出 |
<kbd>Tab</kbd> or <kbd>Ctrl + Space</kbd> | 在图层和文件树视图之间切换 |
<kbd>Ctrl + F</kbd> | 过滤文件 |
<kbd>Ctrl + A</kbd> | 图层视图:查看聚合图像修改 |
<kbd>Ctrl + L</kbd> | 图层视图:查看当前图层修改 |
<kbd>Space</kbd> | Filetree视图:折叠/取消折叠目录 |
<kbd>Ctrl + A</kbd> | Filetree视图: 显示/隐藏添加的文件 |
<kbd>Ctrl + R</kbd> | Filetree视图:显示/隐藏已删除的文件 |
<kbd>Ctrl + M</kbd> | Filetree视图:显示/隐藏已修改的文件 |
<kbd>Ctrl + U</kbd> | Filetree视图:显示/隐藏未修改的文件 |
<kbd>PageUp</kbd> | Filetree视图:向上滚动页面 |
<kbd>PageDown</kbd> | Filetree视图:向下滚动页面 |