Dockerfile构建的基本用法
使用docker build命令通过Dockerfile和构建上下文(Build Context)构建镜像。
```bash
docker build [选项] 路径 | URL | -
```
构建上下文是由文件路径或一个URL(Git仓库位置)定义的一组文件。使用当前目录作为构建上下文的简单构建命令如下。
```bash
docker build .
```
镜像构建由Docker守护进程而不是命令行接口运行。构建过程中一开始将整个构建上下文递归地发送给守护进程。
要使用构建上下文中的文件,可由Dockerfile引用由指令(例如COPY)指定的文件。
按照习惯,将Dockerfile文件直接命名为“Dockerfile”,并置于构建上下文的根位置。
Docker守护进程逐一执行Dockerfile中的指令。
Dockerfile中的每条指令都被独立执行并创建一个新镜像,RUN cd /tmp等命令就不会对下一条指令产生影响。
只要有可能,Docker将重用过程中的中间镜像(缓存),以加速构建过程。
Dockerfile格式
\# 注释
指令 参数
指令不区分大小写,建议大写。指令可以指定若干参数。
Docker按顺序执行其中的指令。Dockerfile文件必须以FROM指令开头。FROM指令之前唯一允许的是ARG指令(用于定义变量)。
以“#”符号开头的行都将被视为注释,除非是解析器指令(Parser Directive)。
解析器指令是可选的,它会影响处理Dockerfile中后续行的方式。
一旦注释、空行或构建器指令被处理,Docker就不再搜寻解析器指令。
Docker可使用解析器指令escape设置用于转义字符的字符。如果未指定,则默认转义字符为反斜杠“\”。
```bash
Dockerfile 是由一行行命令语句组成,并且支持已 # 开头的注释行
一般来说,我们可以将 Dockerfile 分为四个部分:
基础镜像(父镜像)信息指令 FROM
维护者信息指令 MAINTAINER
镜像操作指令 RUN 、ENV、ADD 和 WORKDIR 等
容器启动指令 CMD 、ENTRYPOINT 和 USER 等