已有docker鏡像構建過程分析(使用示例)
1.使用docker history進行分析
docker history 命令用于查看指定鏡像的歷史層信息,它顯示了鏡像創(chuàng)建過程中的每一層,包括創(chuàng)建時間、創(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)建指令和大小,有助于了解鏡像的構建過程和內容。
2.使用dive進行分析
Dive 的主要功能:
- 分層分析:查看 Docker 鏡像的每一層,了解每層的文件及其占用的空間。
- 空間利用率:計算鏡像中有效空間的占比,給出效率評分。
- 浪費空間檢測:識別重復文件、未使用的依賴或冗余數(shù)據(jù)。
- 手動優(yōu)化建議:根據(jù)分析結果手動調整
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>
啟動之后:
root@controller1:~# docker images | grep dive wagoodman/dive latest cf2f0c72f085 10 months ago 51.7MB root@controller1:~#
或者通過以下命令安裝:
snap install dive
通過以下命令來分析 Docker 鏡像:
dive nginx:latest
運行后效果如圖:
啟動 dive 后,分為兩部分:
左側(層結構):展示 Docker 鏡像的每一層,顯示每一層的命令(如 COPY、RUN)和鏡像層的大小。可以通過上下箭頭在不同層之間切換。
右側(文件系統(tǒng)內容):展示每一層中具體添加、修改或刪除的文件和目錄。你可以看到鏡像每一層對文件系統(tǒng)的影響,以及文件變化和大小。
Layer Details:介紹了這一層的命令
Images Details:介紹鏡像的名字、占用空間、鏡像中未使用的文件和重復使用文件的大小、鏡像使用效率(未使用的文件和重復使用文件的大小/鏡像占用總空間)
到此這篇關于已有docker鏡像構建過程分析的文章就介紹到這了,更多相關docker鏡像構建過程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CentOS7.2服務器上搭建Docker私有鏡像倉庫操作示例
這篇文章主要介紹了CentOS7.2服務器上搭建Docker私有鏡像倉庫操作,結合實例形式分析了基于CentOS7.2平臺docker安裝、證書和密鑰生成、私有鏡像創(chuàng)建與啟動等操作相關命令與使用技巧,需要的朋友可以參考下2018-06-06
docker下遷移elasticsearch問題以及解決方案
文章描述了如何將Elasticsearch數(shù)據(jù)從一個服務器遷移到另一個服務器,包括數(shù)據(jù)掛載、版本一致性、啟動命令的匹配以及可能遇到的權限和節(jié)點故障問題的解決方法2024-11-11
docker?build運行報錯source:?not?found解決分析
這篇文章主要為大家介紹了docker?build運行報錯source:?not?found解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

