由于最近在发布的时候发现docker镜像体积变得越来越大,导致整个打包发布流程变得非常耗时了。所以又接到一个差事,优化最终镜像体积。顺便也记录一下docker镜像体积优化的一些步骤。
大概步骤可以分为以下几个步骤:
- 重做基础镜像,因为原基础镜像提交就已经占用了500M,所以计划使用alpine重新制作。
- 优化Dockerfile文件,合并一些指令来减小镜像层数,删除一些临时文件等。
- 最后是对基于重制的基础镜像打包发布镜像后进行镜像层数压缩(docker-squash)。
一、重做基础镜像
文件目录如下:
我这基础镜像需要安装 jdk8、 python2、系统级cron组件(supercronic)
使用docker build 命令镜像制作
效果还不错只有200M 比之前的小了快300M
二、Dockerfile优化
我们自己的不方便展示主要就是
-
使用上边新的基础镜像。
-
优化指令减少层数。
-
删除临时文件。
三、压缩镜像
1、docker-squash是什么?
- 定义
- 是一个用于压缩 Docker 镜像的工具。Docker 镜像是由一系列的层(layers)组成的,在构建和使用过程中,这些层会逐渐累积。可以将这些多层的 Docker 镜像压缩成一个单一层的镜像,从而减小镜像的大小。
- 工作原理
- 当构建 Docker 镜像时,每一个指令(如、等)都会在基础镜像之上创建一个新的层。随着时间的推移和构建步骤的增加,镜像会包含许多层。通过将这些层合并,消除了层与层之间的冗余部分。例如,如果一个镜像有多个层,其中有些层可能包含相同的文件或者依赖,会把这些重复的部分整合,生成一个更紧凑的镜像。
2、安装使用
然后直接使用,其他参数可以查阅一下文档。
docker-squash -t 新镜像名称 原镜像名称
以下是压缩结果 压缩了36.9% 一下减少600M 效果还是非常不错的。
效果不错这下又可以交差,又能开开心心划水。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/41414.html