准则
- 尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件。
- 避免安装不必须的包。
- 每个容器应该只关注一个功能点。
- 最小化镜像的层数。
- 多行参数时应该分类。这样更清晰直白,便于阅读和review,另外,在每个换行符/前都增加一个空格。
- 对构建缓存要有清楚的认识。
指令注意事项
FROM
Dockerfile reference for the FROM instruction
任何时候,尽量使用官方镜像源作为你镜像的基础镜像。我们建议使用Debian Image,因为其被很好地管理着,并且作为一个完整的发布包,但体积却保持着最小化(当前不足150MB)。
1. FROM必须是除了注释以外的第一行;
2. 可以有多个FROM语句,来创建多个image;
LABEL
Dockerfile reference for the LABEL instruction
RUN
Dockerfile reference for the RUN instruction
RUN语句有两种格式:
1. RUN (the command is run in a shell - /bin/sh -c - shell form)
2. RUN ["executable", "param1", "param2"] (exec form)
apt-get
尽量避免使用RUN apt-get upgrade或者dist-upgrade,因为基础镜像的很多核心包不会再未授权的容器中升级。
要结合RUN apt-get update和apt-get install在同一个RUN语句下一起使用。如:
RUN apt-get update && apt-get install -y / package-bar / package-baz / package-foo
评论列表()