dive:一款按層分析docker映象的工具
這是一款用於分析docker映象、圖層內容以及探索縮小Docker映象大小的方法的工具。
要分析Docker映象,只需使用image tag/id/digest執行:
dive <your-image-tag>
或者如果你想新建一個自己的image,那就直接使用命令:
dive build -t <some-tag> .
基本功能
按層分解顯示的ocker影象內容當您在左側選擇一個圖層時,將顯示該圖層的內容結合右邊的所有先前圖層。 此外,你可以充分探索帶箭頭鍵的檔案樹。 現實每層的變化 檔案樹顯示已更改,已修改,新增或刪除的檔案。可以調整此值以顯示特定圖層的更改,或聚合更改到此層。 估計image效率 左下方窗格顯示基本圖層資訊和實驗指標猜猜您的圖片包含多少浪費的空間。 這可能來自重複跨層檔案,跨層移動檔案或不完全刪除檔案。提供了百分比“得分”和總浪費的檔案空間。 快速構建/分析週期 您可以構建Docker映象並使用一個命令立即進行分析: dive build -t some-tag .
您只需要使用相同的 dive build
替換 docker build
命令
安裝
Ubuntu/Debian
wget https://github.com/wagoodman/dive/releases/download/v0.4.1/dive_0.4.1_linux_amd64.deb sudo apt install ./dive_0.4.1_linux_amd64.deb
RHEL/Centos
curl -OL https://github.com/wagoodman/dive/releases/download/v0.4.1/dive_0.4.1_linux_amd64.rpm rpm -i dive_0.4.1_linux_amd64.rpm
Arch Linux在Arch User Repository(AUR)中以dive的形式提供。
yay -S dive
以上示例假定[ yay
]( https://aur.archlinux.org/packages/yay/ )作為安裝AUR包的工具。 Mac
brew tap wagoodman/dive brew install dive
or download the latest Darwin build from thereleases page. Windows 或者下載最新的Darwin版本latest release. Go tools
go get github.com/wagoodman/dive
Note: 以這種方式安裝,您將無法在執行時看到正確的版本 dive -v
. Docker
docker pull wagoodman/dive
or
docker pull quay.io/wagoodman/dive
執行時,您需要包含docker客戶端二進位制檔案和套接字檔案:
docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ wagoodman/dive:latest <dive arguments...>
適用於Windows的Docker(顯示PowerShell相容的換行符;摺疊為一行以實現命令提示符相容性)
docker run --rm -it ` -v /var/run/docker.sock:/var/run/docker.sock ` wagoodman/dive:latest <dive arguments...>
Note:根據您在本地執行的docker版本,您可能需要將docker API版本指定為環境變數:
DOCKER_API_VERSION=1.37 dive ...
or if you are running with a docker image:
docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DOCKER_API_VERSION=1.37 wagoodman/dive:latest <dive arguments...>
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檢視:向下滾動頁面 |
Configuration
無需配置,但是,您可以建立配置檔案並覆蓋值:
log: enabled: true path: ./dive.log level: info # Note: you can specify multiple bindings by separating values with a comma. # Note: UI hinting is derived from the first binding keybinding: # Global bindings quit: ctrl+c toggle-view: tab, ctrl+space filter-files: ctrl+f, ctrl+slash # Layer view specific bindings compare-all: ctrl+a compare-layer: ctrl+l # File view specific bindings toggle-collapse-dir: space toggle-added-files: ctrl+a toggle-removed-files: ctrl+r toggle-modified-files: ctrl+m toggle-unmodified-files: ctrl+u page-up: pgup page-down: pgdn diff: # You can change the default files show in the filetree (right pane). All diff types are shown by default. hide: - added - removed - changed - unchanged filetree: # The default directory-collapse state collapse-dir: false # The percentage of screen width the filetree should take on the screen (must be >0 and <1) pane-width: 0.5 layer: # Enable showing all changes from this layer and ever previous layer show-aggregated-changes: false
dive將在以下位置搜尋配置:
~/.dive.yaml
$XDG_CONFIG_HOME/dive.yaml
~/.config/dive.yaml
*參考來源: github ,由周大濤編譯,轉載請註明來自FreeBuf.COM