一、为什么要做镜像优化?
随着我们对docker镜像的持续使用,在此过程中如果不加以注意并且优化,镜像的体积会越来越大
很多时候我们在使用docker部署应用时,会发现镜像的体积至少有1G以上
镜像体积的增大,不单单会增加磁盘资源与网络资源的开销,也会影响应用的部署效率,使得应用的部署时间会越来越长
因此我们需要减少部署镜像的体积以加快部署效率,降低资源的开销
而对于镜像的优化,可以通过对dockerfile的优化来实现
二、构建镜像的几个原则
镜像最小化原则
-
选择最精简的基础镜像
-
清理镜像构建的中间产物
构建镜像的过程中,当dockerfile的指令执行完成后,删除镜像不需要用的文件。
如使用yum安装组件,可在dockerfile最后用yum clean all镜像清理不需要的文件或者使用系统rm命令删除不需要的源文件等。 -
减少镜像的层数
镜像是一个分层存储的文件,并且镜像对层数也是有一定数量的限制,当前镜像的层数最高是127层,
在使用dockerfile构建镜像时,dockerfile中的每一条指令都会生成一个层,
可以用"&&"将多条命令连接起来。
构建速度最快化原则
- 充分利用镜像构建缓存
镜像父层没有发生变化,构建指令不变,添加文件校验和一致。
只要一个构建指令满足这三个条件,这一层镜像构建就不会再执行,它会直接利用之前构建的结果。
注意:某