歡迎光臨
每天分享高質量文章

如何分析並探索 Docker 容器鏡像的內容 | Linux 中國

我們將學會使用一個名為 Dive 的工具來分析和探索 Docker 鏡像每層的內容。
— Sk


致謝
編譯自 | 
https://www.ostechnix.com/how-to-analyze-and-explore-the-contents-of-docker-images/
 
 作者 | Sk
 譯者 | Chang Liu (FSSlc) ?????共計翻譯:70.5 篇 貢獻時間:1375 天

或許你已經瞭解到 Docker 容器鏡像是一個輕量、獨立、含有運行某個應用所需全部軟體的可執行包,這也是為什麼容器鏡像會經常被開發者用於構建和分發應用。假如你很好奇一個 Docker 鏡像裡面包含了什麼東西,那麼這篇簡要的指南或許會幫助到你。今天,我們將學會使用一個名為 Dive 的工具來分析和探索 Docker 鏡像每層的內容。

通過分析 Docker 鏡像,我們可以發現在各個層之間可能重覆的檔案並通過移除它們來減小 Docker 鏡像的大小。Dive 工具不僅僅是一個 Docker 鏡像分析工具,它還可以幫助我們來構建鏡像。Dive 是一個用 Go 編程語言編寫的自由開源工具。

安裝 Dive

首先從該專案的 發佈頁[1] 下載最新版本,然後像下麵展示的那樣根據你所使用的發行版來安裝它。

假如你正在使用 Debian 或者 Ubuntu,那麼可以運行下麵的命令來下載並安裝它。

  1. $ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb

  1. $ sudo apt install ./dive_0.0.8_linux_amd64.deb

在 RHEL 或 CentOS 系統中

  1. $ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm

  1. $ sudo rpm -i dive_0.0.8_linux_amd64.rpm

Dive 也可以使用 Linuxbrew[2] 包管理器來安裝。

  1. $ brew tap wagoodman/dive

  1. $ brew install dive

至於其他的安裝方法,請參考 Dive 專案的 GitHub 網頁[3]

分析並探索 Docker 鏡像的內容

要分析一個 Docker 鏡像,只需要運行加上 Docker 鏡像 ID 的 dive 命令就可以了。你可以使用 sudo docker images 來得到 Docker 鏡像的 ID。

  1. $ sudo dive ea4c82dcd15a

上面命令中的 ea4c82dcd15a 是某個鏡像的 ID。

然後 dive 命令將快速地分析給定 Docker 鏡像的內容並將它在終端中展示出來。

正如你在上面的截圖中看到的那樣,在終端的左邊一欄列出了給定 Docker 鏡像的各個層及其詳細內容,浪費的空間大小等信息。右邊一欄則給出了給定 Docker 鏡像每一層的內容。你可以使用 Ctrl+空格 來在左右欄之間切換,使用 UP/DOWN 光標鍵來在目錄樹中進行瀏覽。

下麵是 dive 的快捷鍵串列:

◈ Ctrl+空格 —— 在左右欄之間切換
◈ 空格 —— 展開或收起目錄樹
◈ Ctrl+A —— 檔案樹視圖:展示或隱藏增加的檔案
◈ Ctrl+R —— 檔案樹視圖:展示或隱藏被移除的檔案
◈ Ctrl+M —— 檔案樹視圖:展示或隱藏被修改的檔案
◈ Ctrl+U —— 檔案樹視圖:展示或隱藏未修改的檔案
◈ Ctrl+L —— 層視圖:展示當前層的變化
◈ Ctrl+A —— 層視圖:展示總的變化
◈ Ctrl+/ —— 篩選檔案
◈ Ctrl+C —— 退出

在上面的例子中,我使用了 sudo 權限,這是因為我的 Docker 鏡像儲存在 /var/lib/docker/ 目錄中。假如你的鏡像儲存在你的家目錄 ($HOME)或者在其他不屬於 root 用戶的目錄,你就沒有必要使用 sudo 命令。

你還可以使用下麵的單個命令來構建一個 Docker 鏡像並立刻分析該鏡像:

  1. $ dive build -t <some-tag>

Dive 工具仍處於 beta 階段,所以可能會存在 bug。假如你遇到了 bug,請在該專案的 GitHub 主頁上進行報告。

好了,這就是今天的全部內容。現在你知道如何使用 Dive 工具來探索和分析 Docker 容器鏡像的內容以及利用它構建鏡像。希望本文對你有所幫助。

更多精彩內容即將呈現,請保持關註!

乾杯!


via: https://www.ostechnix.com/how-to-analyze-and-explore-the-contents-of-docker-images/

作者:SK[5] 選題:lujun9972 譯者:FSSlc 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

赞(0)

分享創造快樂