今天推薦一個這樣的開源工具,用于探索 Docker 鏡像,各層內容以及發現縮小 Docker/OCI 鏡像大小的方法。這個工具就是:dive。
工具地址:https://github.com/wagoodman/dive,Star 數:22k+。
這個工具可以清晰得看到鏡像每一層都包含哪些內容,方便你分析是否有必要,如下圖所示。

特性
該工具的主要特性包括:
- 按層顯示 Docker 鏡像內容;
- 指出每一層的變化;
- 評估 “鏡像的效率”;
- 快速的構建/分析周期;
- 和 CI 集成;
- 支持多個鏡像和容器引擎:比如 docker、docker-archive 和 podman;
安裝和使用
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視圖:向下滾動頁面 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。