大家在写 dockerfile 时有啥最佳实践?希望得到大家的建议。

大家好,我业余时间写了一个 dockerfile 的语法检查和优化工具 (http://dockerfile-linter.com/) 主要参考了 (http://docs.docker.com/engine/articles/dockerfile_best-practices/) 和在 DockOne 社区和分享里听到的经验,并把一些总结的经验放在里网站上。 大家还有啥更多的最佳实践,想学习一下补充到这个网站上,可以帮助大家写出更好的 dockerfile。 目前代码还在调整,如果大家觉得还不错,整理好后可以对外提供 API 或者开源出来,希望能得到大家的建议,谢谢 :)
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自: dockerfile oilbeater styshoo

抛砖引玉,我先说个: FROM的镜像,最好是私有的。原因是即使是官方的,比如centos:centos6。官方也会进行修改或者升级,然后取代原来的镜像打上tag。而可能有的升级包并不是你需要的。会导致你的服务可能会有问题(踩过类似的坑)。 我的做法是,先自己搞一个镜像 比如写一个dockerfile <pre>FROM centos:centos6 MAINTAINER xxx</pre> 然后构建,这样获得了我自己的私有镜像。以后的构建就可以基于这个镜像进行构建了。 <pre>FROM xxx/centos:centos6</pre> 这样保证使用的一致性。如果想要使用官方的新镜像,只要先把自己的私有镜像先后重新构建一遍就可以了。
自己尝试通过Dockerfile去搭建一些比较实用环境,如nodejs,php,tomcat等。并参考人家类似功能的dockerfile是怎么写的。

oilbeater - 北大学渣@灵雀云

试验了几个例子,发现 CMD ,EXPOSE ,ENTRYPOINT 之类的没填会有提示信息。 这些对于一个好的 dockerfile 确实是必须的,不过可能这些已经在 base image 中设置过了,只是继承下来,所以提示的内容可以略微更改一下改为『不明确指定某个 instruction 会集成 base 的』之类的这样会好一些
http://dockerfile-linter.com/ 无法访问了。

cizixs - loading...

可以参考这篇文章:http://cizixs.com/2017/03/28/dockerfile-best-practice。 给出了一些基本的做法。
这个项目可以开源吗,最近毕业设计做的就是这个方面的研究

要回复问题请先登录注册