以下文章來源于轉角遇到GitHub ,作者歐盆索思
當前 Docker 的火熱程度毋庸置疑。我們都知曉 Docker 的鏡像是基于層的概念構建的。如何讓鏡像更小,一直是大家關注的,網上也有很多最佳實踐。有沒有好的工具可以幫我們分析鏡像,讓我們可以更清晰得看到鏡像的各個層?
今天推薦一個這樣的開源工具,用于探索 Docker 鏡像,各層內容以及發現縮小 Docker/OCI 鏡像大小的方法。這個工具就是:dive。
工具地址:https://github.com/wagoodman/dive,Star 數:22k+。
這個工具可以清晰得看到鏡像每一層都包含哪些內容,方便你分析是否有必要,如下圖所示。
特性
該工具的主要特性包括:
- 按層顯示 Docker 鏡像內容;
- 指出每一層的變化;
- 評估 “鏡像的效率”;
- 快速的構建/分析周期;
- 和 CI 集成;
- 支持多個鏡像和容器引擎:比如 docker、docker-archive 和 podman;
安裝和使用
根據你的系統,可以選擇不同的安裝方式。作者為不同系統準備了編譯好的可執行程序,比如 macOS 可以這么安裝:
$ brew install dive
你也可以通過發布頁獲得對應的文件:https://github.com/wagoodman/dive/releases。
此外,如果你有 Go 開發環境,可以通過源碼編譯安裝。
對了,還可以通過 docker 安裝哦,比如:
$ docker pull wagoodman/dive
至于使用,一般使用最簡單的方式:
$ dive <your-image-tag>
比如分析 Go 語言鏡像:
$ dive golang:1.14
Fetching image... (this can take a while with large images)
Parsing image...Analyzing image...Building cache...
可以看到該鏡像構建各個層
今天的項目大家覺得怎么樣嗎?如果你喜歡,請在文章底部留言、點贊或關注轉發,你的支持就是我持續更新的最大動力!