Dockerfile官方参考文档

Dockerfile用法

docker build命令从Dockerfile和上下文构建映像。构建版本的上下文是指定位置PATH或URL上的一组文件。PATH是您本地文件系统上的目录。URL是一个Git存储库位置。
构建上下文是递归处理的。因此,PATH包含任何子目录,URL包括存储库及其子模块。以下示例显示了使用当前目录(.)作为构建上下文的构建命令:

docker build .

您可以使用带有docker build的-f标志指向文件系统中任何地方的Docker文件。

docker build -f /path/to/a/Dockerfile .

如果构建成功,您可以指定保存新映像的存储库和标签

docker build -t shykes/myapp .

要在构建后将映像标记到多个存储库中,请在运行build命令时添加多个-t参数

docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .

在Docker守护程序运行Dockerfile中的指令之前,它会对Dockerfile进行初步验证,如果语法不正确,则返回错误
Docker守护进程在Dockerfile逐一运行指令,必要时将每个指令的结果提交到新映像,然后最终输出新映像的ID。Docker守护程序将自动清理您发送的上下文。
请注意,每个指令都是独立运行的,并导致创建新映像——因此RUN cd /tmp不会对下一个指令产生任何影响。
只要有可能,Docker都会使用构建缓存来显著加快docker build过程。这由控制台输出中的CACHED消息指示。
了解更多-> Dockerfile最佳使用指南 完成构建后,您就可以使用docker scan来扫描图像,并将图像推送到Docker Hub。

Dockerfile格式

注释

  • Docker将以#开头的行视为注释,除非该行是有效的解析器指令。行中其他地方的#标记被视为参数。
  • 在执行Dockerfile指令之前,注释行将被删除。

命令

构建

Both

启动

FROM

WORKDIR

CMD

MAINTAINER

USER

ENV

COPY

EXPOSE

ADD

VOLUME

RUN

ENTRYPOINT

ONBULID

.dockerignore

FROM              # 指定基础镜像
MAINTAINER    # 指定维护者信息,姓名+邮箱
RUN                # 执行命令
COPY              # 将文件拷贝到镜像中
ADD                # 添加内容
ONBULID         # 触发指令,当构建一个被继承的Dockerfile时
WORKDIR        # 设置当前目录
VOLUME         # 设置卷,挂载主机目录
EXPOSE          # 暴露端口
CMD               # 容器启动的时候要运行的命令(只有最后一个会生效,可被替代
ENTRYPOINT   # 容器启动的时候要运行的命令(可以追加命令
ENV                # 构建的时候设置环境变量