Docker中有个非常重要的概念叫做——镜像(Image)。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
dockerfile的优点:
相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点:
1:dockerfile只有几kb,便于传输
2:使用dockerfile构建出来的镜像,在运行容器的时候,不用指定容器的初始命令
3:支持更多的自定义操作
Dockerfile 一般分为四部分:基础镜像信息、维护者信息(可以没有)、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。
要使用多个Dockerfile 创建镜像,可以在不同目录编写Dockerfile,然后在Dockerfile 所在的目录下构建新的镜像。
注意:Dockerfile 中所包含的需要的内容;如COPY的文件、目录等,都需要在Dockerfile 同级目录下存在。
dockerfile的指令说明:
notion image

1、FROM指令

案例:

2、 MAINTAINER指令(可以省略)

案例:

3、COPY指令

案例:
面试常问的3种常用的 Web 会话管理方式Dockerfile的CMD指令