一、FROM 语法
scratch -- 从头开始
尽量来使用官方提供的image。
二、label语法
meta信息,类似于代码的注释。
三、run语法
没run一次image上会有新的一层。因此有必要使用&&合并执行,避免layer 过多看起来很混乱。
四、workdir 语法
使用workdir不要使用run cd来替代
workdir尽量使用绝对路径。增强dockerfile的可移植性。
五、add 和copy 语法
- 区别:add 还具有解压缩的功能,例如add test.tat.gz /
- workdir 和add的结合
- 添加远程文件/目录使用curl 或者 wget
六、ENV语法
定义常量,增加可维护性,和shell中定义变量一个意思。
七、volume 和expose 语法
八、run、cmd 和entrypoint