请问dockerfile里面不同功能的命令该分开几个RUN写还是写在一个RUN命令后面好?
如题,请问dockerfile里面不同功能的命令该分开几个RUN写还是写在一个RUN命令后面好?
比如,我以Ubuntu为基础创建新镜像,一般都会先更新,然后再安装一些需要的命令。然后后面还要安装自己需要用的软件,这些命令都写在一个RUN后面好呢还是分开几个RUN命令写要好?谢谢!
还有个问题,怎么使dockerfile创建的镜像小些呢,我安装了anaconda以及几个软件生成的镜像竟然有6G。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尽量用一个RUN命令,因为每个Docker命令就是一个layer,还有就是基础镜像用小一点的,例如alpine这样的小体积基础镜像。详情可以参考 7 步精简 Docker 镜像几百MB(上)
我个人觉得RUN命令写一条还是多条完全取决于这一条RUN命令是否会生成压根不需要的临时文件(比如编译,比如安装软件包带来的软件列表以及软件包缓存)。
强烈推荐看docker官方的最佳实践,新手必看: https://docs.docker.com/engin...
官方的最佳实践中,就总结了怎么命中缓存,怎么减少构建镜像的容量,强烈推荐细细研读一番。