镜像的优化
优化镜像其实就是在能保证镜像想要的作用的前提下,尽量减小镜像的大小,节省资源。
优化镜像有几种途径:
注意:必须是在保证镜像作用的前提下进行优化
- base镜像的选择尽量精简
- RUN命令的使用尽量少(因为一个RUN命令就会建立一层自定义镜像层)
- 清理不必要的镜像构建的中间产物(如不需要的文件、压缩包、目录等等)
- 尽量使用构建缓存(这样多个镜像只需要共享同一个镜像层,并且构建速度很快)
- 优化网络请求(也是为了提高构建的速度)
- 使用多阶段构建镜像
下面通过实际操作来展示镜像是如何被优化的,这里我假设想要的是能够运行nginx服务的功能的镜像。
构建未优化的镜像
为了方便看出优化的效果,这里先构建出一个没有优化过的镜像。
这里用了一个140M大的基础镜像rhel7,由于需要装nginx,而装nginx时需要在yum仓库下载一些依赖性软件,所以需要给镜像中配置yum仓库,和在宿主机安装是一样的(nginx如何安装在这里不再赘述,需要了解请翻之前的博客)。
- 在构建目录中放入进行操作需要用到的文件和nginx压缩包,这里的madao.repo是用来配置yum