part_94:镜像的优化
镜像的优化原则
- 选择最精简的基础镜像
- 减少镜像的层数
- 清理镜像构建的中间产物
- 注意优化网络请求
- 尽量去用构建缓存
- 使用多阶段构建镜像
示例
- 以搭建nginx镜像为例演示如何加速优化Dockerfile
- 先准备好linux的安装包,将其放入docke目录下
- 编写Dockerfile
- 创建容器
- 封装镜像
- 查看镜像是否封装成功
- 运行测试nginx是否可以正常访问
- 编辑配置文件,将其封装成数据卷
- 删除之前的nginx,并运行新封装的镜像
- 查看两次的对比,v2会比v1多一层
- 查看nginx数据存放位置
- 编辑测试页面test.html
- 测试
- 优化前先清理环境
- 先将已经在运行nginx的删除
- 删除数据卷
- 镜像优化前,查看镜像的大小为276M
-
第一次优化:减少镜像层数
将RUN都放在一行,减少层数 - 重新封装成镜像后查看大小(减少24M)
-
第二次优化:清理镜像构建的中间产物
将不想看到的输出都导入垃圾箱 - 第三次优化:使用多阶段构建镜像
- 封装镜像后查看大小
- 重新封装一个镜像查看镜像变成了141M
- 查看此时的镜像是否能运行成功
- 最终优化:选择最精简的基础镜像
- 先将distroless镜像导入docker
- 编辑Dockerfile
- 封装成镜像后查看大小(只有23.3MB)
-
测试一下这么小的镜像能否正常使用