Dockerfile 创建及Container启动小技巧

Dockerfile 创建及Container启动小技巧

最近看了不少开源代码的Image,总结下自己认为创建Image及启动Container要注意的小技巧。

创建Image

  • 如果牵涉到编译,尽量使用1.7 的multi-stage
  • 适当使用Arg ,使用Arg的时候最好设置默认值
  • 使用&& 或者;一次执行多条语句降低层数
  • 使用apt-get或者yum安装时候后面跟上clean语句,清除安装包,降低大小
    apt-get update && apt-get install -y traceroute && apt clean
  • 将需要进行写的文件及目录通过ln等方法汇总到一个目录下,并且使用volume 标示
  • 非Volume部分应该是只读的
  • 在容器使用非root启动应用要注意权限,尤其是volume的权限

启动Container 应该注意下

  • 同步所有容器的时区,启动时候加上-v /etc/localtime:/etc/localtime:ro
  • 对于有状态服务,尽量配置接收stop signal ,默认有10秒来完成shutdown,在docker1.7可以调整这个参数
  • 所有主机必须配置时间同步,时区最好也一致,否则会有各种奇怪问题

猜你喜欢

转载自blog.csdn.net/weixin_40455124/article/details/90172895