已有docker鏡像構(gòu)建過程分析(使用示例)
1.使用docker history進(jìn)行分析
docker history
命令用于查看指定鏡像的歷史層信息,它顯示了鏡像創(chuàng)建過程中的每一層,包括創(chuàng)建時(shí)間、創(chuàng)建者、大小和注釋等信息。
查看鏡像歷史
docker history myimage:latest
使用示例:
root@controller1:~# docker images | grep zj_jdk_test_3 zj_jdk_test_3 latest 623478971aeb 8 weeks ago 280MB root@controller1:~# root@controller1:~# root@controller1:~# root@controller1:~# root@controller1:~# docker history 623478971aeb IMAGE CREATED CREATED BY SIZE COMMENT 623478971aeb 8 weeks ago /bin/sh -c set -x && sed -i 's#deb.debia… 20.2MB b427061b275f 2 years ago /bin/sh -c set -eux; arch="$(dpkg --print-… 108MB <missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_VERSION=8u342 0B <missing> 2 years ago /bin/sh -c #(nop) ENV LANG=C.UTF-8 0B <missing> 2 years ago /bin/sh -c #(nop) ENV PATH=/usr/local/openj… 0B <missing> 2 years ago /bin/sh -c { echo '#/bin/sh'; echo 'echo "$J… 27B <missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_HOME=/usr/local/… 0B <missing> 2 years ago /bin/sh -c set -eux; apt-get update; apt-g… 11.5MB <missing> 2 years ago /bin/sh -c set -ex; if ! command -v gpg > /… 16.5MB <missing> 2 years ago /bin/sh -c set -eux; apt-get update; apt-g… 15.9MB <missing> 2 years ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 2 years ago /bin/sh -c #(nop) ADD file:dfd7e3791fa0512f0… 108MB root@controller1:~#
顯示完整輸出
docker history --no-trunc myimage:latest
- 鏡像歷史信息包括每一層的創(chuàng)建指令和大小,有助于了解鏡像的構(gòu)建過程和內(nèi)容。
2.使用dive進(jìn)行分析
Dive 的主要功能:
- 分層分析:查看 Docker 鏡像的每一層,了解每層的文件及其占用的空間。
- 空間利用率:計(jì)算鏡像中有效空間的占比,給出效率評(píng)分。
- 浪費(fèi)空間檢測(cè):識(shí)別重復(fù)文件、未使用的依賴或冗余數(shù)據(jù)。
- 手動(dòng)優(yōu)化建議:根據(jù)分析結(jié)果手動(dòng)調(diào)整
Dockerfile
以優(yōu)化鏡像大小。
安裝 dive
docker pull wagoodman/dive:latest docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest <your_image>
啟動(dòng)之后:
root@controller1:~# docker images | grep dive wagoodman/dive latest cf2f0c72f085 10 months ago 51.7MB root@controller1:~#
或者通過以下命令安裝:
snap install dive
通過以下命令來分析 Docker 鏡像:
dive nginx:latest
運(yùn)行后效果如圖:
啟動(dòng) dive 后,分為兩部分:
左側(cè)(層結(jié)構(gòu)):展示 Docker 鏡像的每一層,顯示每一層的命令(如 COPY、RUN)和鏡像層的大小。可以通過上下箭頭在不同層之間切換。
右側(cè)(文件系統(tǒng)內(nèi)容):展示每一層中具體添加、修改或刪除的文件和目錄。你可以看到鏡像每一層對(duì)文件系統(tǒng)的影響,以及文件變化和大小。
Layer Details:介紹了這一層的命令
Images Details:介紹鏡像的名字、占用空間、鏡像中未使用的文件和重復(fù)使用文件的大小、鏡像使用效率(未使用的文件和重復(fù)使用文件的大小/鏡像占用總空間)
到此這篇關(guān)于已有docker鏡像構(gòu)建過程分析的文章就介紹到這了,更多相關(guān)docker鏡像構(gòu)建過程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker已啟動(dòng)容器修改添加端口映射的兩種方法
最近工作中遇到一個(gè)問題,docker容器啟動(dòng)后怎么修改端口映射?通過查找相關(guān)資料解決了,這篇文章主要給大家介紹了關(guān)于docker已啟動(dòng)容器修改添加端口映射的兩種方法,需要的朋友可以參考下2022-08-08替換docker容器中的一個(gè)文件的實(shí)現(xiàn)
在某些情況下,我們可能確實(shí)需要更新容器內(nèi)的文件,本文主要介紹了替換docker容器中的一個(gè)文件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06CentOS7.2服務(wù)器上搭建Docker私有鏡像倉(cāng)庫(kù)操作示例
這篇文章主要介紹了CentOS7.2服務(wù)器上搭建Docker私有鏡像倉(cāng)庫(kù)操作,結(jié)合實(shí)例形式分析了基于CentOS7.2平臺(tái)docker安裝、證書和密鑰生成、私有鏡像創(chuàng)建與啟動(dòng)等操作相關(guān)命令與使用技巧,需要的朋友可以參考下2018-06-06idea?+?Docker?+?阿里鏡像服務(wù)打包部署的過程
本文介紹了如何在IDEA中使用Docker打包鏡像,并將鏡像推送到阿里云鏡像服務(wù),同時(shí),還詳細(xì)說明了如何在ECS服務(wù)器上安裝和配置Docker,并提供了常用的Docker命令和操作技巧,感興趣的朋友一起看看吧2025-02-02docker下遷移elasticsearch問題以及解決方案
文章描述了如何將Elasticsearch數(shù)據(jù)從一個(gè)服務(wù)器遷移到另一個(gè)服務(wù)器,包括數(shù)據(jù)掛載、版本一致性、啟動(dòng)命令的匹配以及可能遇到的權(quán)限和節(jié)點(diǎn)故障問題的解決方法2024-11-11docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析
這篇文章主要為大家介紹了docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09