如题,请问dockerfile里面不同功能的命令该分开几个RUN写还是写在一个RUN命令后面好?
比如,我以Ubuntu为基础创建新镜像,一般都会先更新,然后再安装一些需要的命令。然后后面还要安装自己需要用的软件,这些命令都写在一个RUN后面好呢还是分开几个RUN命令写要好?谢谢!
还有个问题,怎么使dockerfile创建的镜像小些呢,我安装了anaconda以及几个软件生成的镜像竟然有6G。。。
如题,请问dockerfile里面不同功能的命令该分开几个RUN写还是写在一个RUN命令后面好?
比如,我以Ubuntu为基础创建新镜像,一般都会先更新,然后再安装一些需要的命令。然后后面还要安装自己需要用的软件,这些命令都写在一个RUN后面好呢还是分开几个RUN命令写要好?谢谢!
还有个问题,怎么使dockerfile创建的镜像小些呢,我安装了anaconda以及几个软件生成的镜像竟然有6G。。。
我个人觉得RUN命令写一条还是多条完全取决于这一条RUN命令是否会生成压根不需要的临时文件(比如编译,比如安装软件包带来的软件列表以及软件包缓存)。
强烈推荐看docker官方的最佳实践,新手必看: https://docs.docker.com/engin...
官方的最佳实践中,就总结了怎么命中缓存,怎么减少构建镜像的容量,强烈推荐细细研读一番。
2 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答3k 阅读
2 回答800 阅读✓ 已解决
1 回答1.4k 阅读
2 回答1.4k 阅读
尽量用一个RUN命令,因为每个Docker命令就是一个layer,还有就是基础镜像用小一点的,例如alpine这样的小体积基础镜像。详情可以参考 7 步精简 Docker 镜像几百MB(上)