Dockerfile 合并层

Dockerfile 要求在保证功能的前提下,尽量减少层数。可以通过合并 来达到减少层的目的。

原本的样子:

两个 RUN 很相似,先更新,再安装,最后删。

这样 build 的镜像会有两层,不符合最小层的原则,还有就是两次 RUN 都执行了 这样会更新两次软件源,延长了 build 的时间。总之就是效率很低,而且产物还不理想。

修改后的样子:

这样安装相同的 packages 只需要更新一次软件源,而且构建的镜像只有一层。

几个命令解释:

  • :同意安装,build docker 是非交互的过程,所以要使用 默认同意安装。

  • :不安装推荐的软件。非必要的文件不安装,减少镜像的体积。

  • : 允许安装不可信的 package。

  • 命令清除遗留在 目录下的文件。

  • 移除未使用的软件包。

  • : 目录下存放的都是软件源的 metadata,也就是用 时下载的文件。不能乱删,第一个 RUN 到后面把这个目录下文件给删了,第二个 RUN 就必须重新 ,不然的话,第二个 RUN 中的 很可能就会 错 ,原因是找不到软件源。

PS:开发还是应该要有点运维功底的。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月9日
下一篇 2021年3月9日

相关推荐