已有docker鏡像構(gòu)建過程分析(使用示例)
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)建指令和大小,有助于了解鏡像的構(gòu)建過程和內(nèi)容。
2.使用dive進行分析
Dive 的主要功能:
- 分層分析:查看 Docker 鏡像的每一層,了解每層的文件及其占用的空間。
- 空間利用率:計算鏡像中有效空間的占比,給出效率評分。
- 浪費空間檢測:識別重復(fù)文件、未使用的依賴或冗余數(shù)據(jù)。
- 手動優(yōu)化建議:根據(jù)分析結(jié)果手動調(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>
啟動之后:
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 后,分為兩部分:
左側(cè)(層結(jié)構(gòu)):展示 Docker 鏡像的每一層,顯示每一層的命令(如 COPY、RUN)和鏡像層的大小。可以通過上下箭頭在不同層之間切換。
右側(cè)(文件系統(tǒng)內(nèi)容):展示每一層中具體添加、修改或刪除的文件和目錄。你可以看到鏡像每一層對文件系統(tǒng)的影響,以及文件變化和大小。
Layer Details:介紹了這一層的命令
Images Details:介紹鏡像的名字、占用空間、鏡像中未使用的文件和重復(fù)使用文件的大小、鏡像使用效率(未使用的文件和重復(fù)使用文件的大小/鏡像占用總空間)
到此這篇關(guān)于已有docker鏡像構(gòu)建過程分析的文章就介紹到這了,更多相關(guān)docker鏡像構(gòu)建過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker查看鏡像的Dockerfile(docker history和docker inspec
這篇文章主要給大家介紹了關(guān)于Docker查看鏡像的Dockerfile的相關(guān)資料,文中主要運用的是docker history和docker inspect命令,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
Docker部署Nginx反向代理的坑與解決方案實戰(zhàn)記錄
這篇文章主要介紹了Docker部署Nginx反向代理的坑與解決方案的相關(guān)資料,通過本文的介紹,你可以掌握如何在Docker中部署Nginx作為反向代理,并解決了常見的報錯問題,需要的朋友可以參考下2025-03-03

