已有docker镜像构建过程分析(使用示例)

 更新时间:2024年12月30日 09:25:05   作者:香吧香  
docker history命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间、创建者、大小和注释等信息,本文介绍已有docker镜像构建过程分析,感兴趣的朋友一起看看吧

1.使用docker history进行分析  

  docker history 命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间、创建者、大小和注释等信息。

查看镜像历史

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
  • 镜像历史信息包括每一层的创建指令和大小,有助于了解镜像的构建过程和内容。

2.使用dive进行分析

Dive 的主要功能:

  • 分层分析:查看 Docker 镜像的每一层,了解每层的文件及其占用的空间。
  • 空间利用率:计算镜像中有效空间的占比,给出效率评分。
  • 浪费空间检测:识别重复文件、未使用的依赖或冗余数据。
  • 手动优化建议:根据分析结果手动调整 Dockerfile 以优化镜像大小。

安装 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)和镜像层的大小。可以通过上下箭头在不同层之间切换。

    右侧(文件系统内容):展示每一层中具体添加、修改或删除的文件和目录。你可以看到镜像每一层对文件系统的影响,以及文件变化和大小。

    Layer Details:介绍了这一层的命令

    Images Details:介绍镜像的名字、占用空间、镜像中未使用的文件和重复使用文件的大小、镜像使用效率(未使用的文件和重复使用文件的大小/镜像占用总空间)

到此这篇关于已有docker镜像构建过程分析的文章就介绍到这了,更多相关docker镜像构建过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker核心命令与实践指南示例详解

    Docker核心命令与实践指南示例详解

    本文系统整理Docker的核心概念与常用命令,涵盖镜像管理、容器操作、数据存储、网络配置、Compose 编排以及 Dockerfile 构建等内容,感兴趣的朋友跟随小编一起看看吧
    2025-06-06
  • Docker查看镜像的Dockerfile(docker history和docker inspect命令)

    Docker查看镜像的Dockerfile(docker history和docker inspec

    这篇文章主要给大家介绍了关于Docker查看镜像的Dockerfile的相关资料,文中主要运用的是docker history和docker inspect命令,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • k3d入门指南之在Docker中运行K3s的详细教程

    k3d入门指南之在Docker中运行K3s的详细教程

    在本文中,我们将简单了解k3d,这是一款可让您在安装了Docker的任何地方运行一次性Kubernetes集群的工具,此外在本文中我们还将探讨在使用k3d中可能会出现的一切问题,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Docker容器搭建并运行实现过程详解

    Docker容器搭建并运行实现过程详解

    这篇文章主要介绍了Docker容器搭建并运行实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 如何修改docker容器中MySQL的用户密码

    如何修改docker容器中MySQL的用户密码

    本文主要介绍了如何修改docker容器中MySQL的用户密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 一文详解如何检查本地是否存在Docker镜像

    一文详解如何检查本地是否存在Docker镜像

    在运维工作中,查看 Docker 镜像是管理容器化应用的基础操作之一,这篇文章主要介绍了如何检查本地是否存在Docker镜像的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • Docker部署postgresql的方法实现

    Docker部署postgresql的方法实现

    本文主要介绍了Docker部署postgresql的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Docker部署Nginx反向代理的坑与解决方案实战记录

    Docker部署Nginx反向代理的坑与解决方案实战记录

    这篇文章主要介绍了Docker部署Nginx反向代理的坑与解决方案的相关资料,通过本文的介绍,你可以掌握如何在Docker中部署Nginx作为反向代理,并解决了常见的报错问题,需要的朋友可以参考下
    2025-03-03
  • Docker Volume的用法看这一篇就够了

    Docker Volume的用法看这一篇就够了

    这篇文章主要介绍了Docker Volume的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • docker目录挂载的新语法小结

    docker目录挂载的新语法小结

    本文主要介绍了docker目录挂载的新语法小结,详细的介绍了两种挂载目录的区别,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01

最新评论