產品說明
Dive 是一款專為開發者與 DevOps 工程師設計的命令列 (CLI) 工具,旨在解決 Docker 映像檔 (Image) 過於肥大且難以優化的痛點。透過直觀的終端機使用者介面 (TUI),Dive 能將映像檔「層層拆解」,讓使用者清楚看見每一層 (Layer) 增加了哪些檔案、修改了哪些內容,以及是否存在重複或無用的資料。
在容器化部署日益普及的今天,優化映像檔大小不僅能加快部署速度,還能減少傳輸流量與儲存成本。Dive 能自動計算映像檔的「效率分數 (Image Efficiency)」,並標示出潛在的浪費空間,是進行 Docker 瘦身 (Docker Slimming) 必不可少的分析利器。
核心特色:
- 層級視覺化:左側顯示每一層的指令與大小,右側即時顯示該層對檔案系統的變更(新增、修改、刪除)。
- 浪費空間分析:自動偵測並統計跨層重複或被覆蓋的檔案,量化顯示「浪費空間」的大小。
- CI/CD 整合:支援在自動化流程中執行,可設定效率門檻(例如:效率低於 90% 則 Build 失敗),確保產出的映像檔品質。
- 跨平台支援:雖為 CLI 工具,但完美支援 Windows、Mac 與 Linux,且安裝過程簡單。
常用指令與操作
Dive 的操作邏輯非常簡單,主要分為「分析現有映像檔」與「建置並分析」兩種場景。
基礎指令
- 分析映像檔:直接指定 Image ID 或 Tag 即可開始分析。
dive <image-tag> # 例如:dive nginx:latest - 建置並分析:取代傳統的
docker build指令,在建置完成後直接進入分析介面。dive build -t <my-image-tag> . - CI 模式執行:加上
--ci參數即可在非互動模式下輸出分析報告(適合 Jenkins、GitLab CI 等環境)。dive <image-tag> --ci
介面快捷鍵 (Shortcuts)
進入 Dive 的互動介面後,你可以使用鍵盤快速切換視角與篩選資料:
| 按鍵 | 功能說明 | 適用情境 |
|---|---|---|
| Tab | 切換面板 (Switch View) | 在左側 Layer 列表與右側檔案樹之間切換 |
| Space | 展開/收合目錄 (Toggle Folder) | 檔案樹瀏覽 |
| Ctrl + F | 檔案篩選 (Filter Files) | 快速搜尋特定檔名 |
| Ctrl + L | 僅顯示當前層變化 (Layer Changes) | 右側只顯示該 Layer 的變動,而非完整檔案系統 |
| Ctrl + A | 顯示聚合變化 (Aggregate Changes) | 右側顯示直到該層為止的所有檔案狀態 |
| Ctrl + U | 取消篩選 (Unfilter) | 清除搜尋條件 |
| Ctrl + C | 離開程式 (Quit) | 結束 Dive |
進階技巧
- 檢視檔案內容:雖然 Dive 主要用於檢視檔案結構,但透過整合習慣的編輯器,你也可以快速檢查設定檔內容是否正確寫入。
- 效率指標 (Efficiency Score):介面左下角會顯示一個百分比分數。如果分數過低,建議檢查是否有大量暫存檔 (如
apt-get update後未清理/var/lib/apt/lists) 被遺留在中間層。
操作介面




