已有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镜像构建过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot 整合 Docker的详细过程

    SpringBoot 整合 Docker的详细过程

    这篇文章主要介绍了SpringBoot 整合 Docker的详细过程,本文通过一个简单的项目来给大家介绍整合的详细过程,需要的朋友可以参考下
    2021-11-11
  • docker修改容器的端口、容器名、映射地址以及注意事项

    docker修改容器的端口、容器名、映射地址以及注意事项

    在日常的docker运维中,经常遇到修改容器的端口、容器名、映射地址等信息,这篇文章主要给大家介绍了关于docker修改容器的端口、容器名、映射地址以及注意事项的相关资料,需要的朋友可以参考下
    2022-08-08
  • Docker快速部署SpringBoot项目介绍

    Docker快速部署SpringBoot项目介绍

    大家好,本篇文章主要讲的是Docker快速部署SpringBoot项目介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • docker中容器运行时如何将目录和宿主机进行挂载

    docker中容器运行时如何将目录和宿主机进行挂载

    对于一个已经运行的容器,如果后续需要新挂载一个目录怎么办?下面这篇文章主要给大家介绍了关于docker中容器运行时如何将目录和宿主机进行挂载的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • Docker搭建MySQL5.7主从复制的实现

    Docker搭建MySQL5.7主从复制的实现

    本文主要介绍了Docker搭建MySQL5.7主从复制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 在 docker 之间导出导入镜像的方法

    在 docker 之间导出导入镜像的方法

    本篇文章主要介绍了在 docker 之间导出导入镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Docker 安装 MySQL(8和5.7)

    Docker 安装 MySQL(8和5.7)

    这篇文章主要介绍了Docker 安装 MySQL(8和5.7),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Docker跨平台和环境部署的过程详解

    Docker跨平台和环境部署的过程详解

    Docker是一个开放源代码的容器化平台,它能够实现应用及其依赖的打包,从而实现跨平台和环境的快速部署,本文介绍了Docker的基本概念、优势和基本使用方法,包括安装、启动、构建镜像和部署应用等步骤
    2024-11-11
  • Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    这篇文章主要介绍了Jenkins+Docker 一键自动化部署SpringBoot 项目,本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路,需要的朋友可以参考下
    2022-08-08
  • 基于docker安装mariadb配置过程解析

    基于docker安装mariadb配置过程解析

    这篇文章主要介绍了基于docker安装mariadb配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论