Skip to content

Dive

Docker 映像檔分析神器

軟體分類 程式開發 / 容器工具
軟體標籤
開發廠商 Alex Goodman (wagoodman)
Stars
0
Forks
0
License
MIT
Version
v0.13.1
Update
OS

產品說明

Dive 是一款專為開發者與 DevOps 工程師設計的命令列 (CLI) 工具,旨在解決 Docker 映像檔 (Image) 過於肥大且難以優化的痛點。透過直觀的終端機使用者介面 (TUI),Dive 能將映像檔「層層拆解」,讓使用者清楚看見每一層 (Layer) 增加了哪些檔案、修改了哪些內容,以及是否存在重複或無用的資料。

在容器化部署日益普及的今天,優化映像檔大小不僅能加快部署速度,還能減少傳輸流量與儲存成本。Dive 能自動計算映像檔的「效率分數 (Image Efficiency)」,並標示出潛在的浪費空間,是進行 Docker 瘦身 (Docker Slimming) 必不可少的分析利器。

核心特色:

  • 層級視覺化:左側顯示每一層的指令與大小,右側即時顯示該層對檔案系統的變更(新增、修改、刪除)。
  • 浪費空間分析:自動偵測並統計跨層重複或被覆蓋的檔案,量化顯示「浪費空間」的大小。
  • CI/CD 整合:支援在自動化流程中執行,可設定效率門檻(例如:效率低於 90% 則 Build 失敗),確保產出的映像檔品質。
  • 跨平台支援:雖為 CLI 工具,但完美支援 Windows、Mac 與 Linux,且安裝過程簡單。

常用指令與操作

Dive 的操作邏輯非常簡單,主要分為「分析現有映像檔」與「建置並分析」兩種場景。

基礎指令

  1. 分析映像檔:直接指定 Image ID 或 Tag 即可開始分析。
    dive <image-tag>
    # 例如:dive nginx:latest
    
  2. 建置並分析:取代傳統的 docker build 指令,在建置完成後直接進入分析介面。
    dive build -t <my-image-tag> .
    
  3. 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) 被遺留在中間層。

操作介面