項(xiàng)目推薦:利器—一個(gè)開源工具探究Docker 鏡像的世界
當(dāng)前 Docker 的火熱程度毋庸置疑。我們都知曉 Docker 的鏡像是基于層的概念構(gòu)建的。如何讓鏡像更小,一直是大家關(guān)注的,網(wǎng)上也有很多最佳實(shí)踐。有沒有好的工具可以幫我們分析鏡像,讓我們可以更清晰得看到鏡像的各個(gè)層?
今天推薦一個(gè)這樣的開源工具,用于探索 Docker 鏡像,各層內(nèi)容以及發(fā)現(xiàn)縮小 Docker/OCI 鏡像大小的方法。這個(gè)工具就是:dive。
工具地址:https://github.com/wagoodman/dive,Star 數(shù):22k+。
這個(gè)工具可以清晰得看到鏡像每一層都包含哪些內(nèi)容,方便你分析是否有必要,如下圖所示。
特性
該工具的主要特性包括:
- 按層顯示 Docker 鏡像內(nèi)容;
- 指出每一層的變化;
- 評(píng)估 “鏡像的效率”;
- 快速的構(gòu)建/分析周期;
- 和 CI 集成;
- 支持多個(gè)鏡像和容器引擎:比如 docker、docker-archive 和 podman;
安裝和使用
根據(jù)你的系統(tǒng),可以選擇不同的安裝方式。作者為不同系統(tǒng)準(zhǔn)備了編譯好的可執(zhí)行程序,比如 MacOS 可以這么安裝:
- $ brew install dive
你也可以通過發(fā)布頁獲得對(duì)應(yīng)的文件:https://github.com/wagoodman/dive/releases。
此外,如果你有 Go 開發(fā)環(huán)境,可以通過源碼編譯安裝。
對(duì)了,還可以通過 docker 安裝哦,比如:
- $ docker pull wagoodman/dive
至于使用,一般使用最簡(jiǎn)單的方式:
- $ 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...
可以看到該鏡像構(gòu)建各個(gè)層
