一个dockerfile文件包含以下部分:
基础镜像信息:使用FROM关键字指定基础镜像信息,FROM是dockerfile文件的第一条指令。
维护者信息:使用MAINTAINER关键字指定,通常可以使用dockerfile文件创建者的名字或者邮件作为维护者的信息。
镜像操作指令:没执行一条镜像操作指令,都会在镜像中添加新的一层。
容器启动执行命令:用户指定在启动容器时需要执行的命令,通过:CMD ENTRYPOINT指定。
常见的景象操作指令:
指令 | 描述 | |
FROM | 基础镜像,一切从这里开始构建 | |
MAINTAINER | 镜像是谁写的,姓名+邮件 | |
RUN | 镜像构建的时候需要运行的命令 | |
ADD | 添加内容:比如加一个tomcat压缩包 | |
WORKDIR | 镜像的工作目录 | |
VOLUME | 镜像挂载的目录 | |
EXPOSE | 保留暴露的端口 | |
CMD | 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可以被代替 | |
ENTRYPOINT | 指定这个容器启动的时候需要运行的命令,可以追加命令 | |
ONBUILD | 当构建一个被继承Dockerfile的时候就会运行ONBUILD的指令,触发指令 | |
COPY | 类似ADD,将我们的文件拷贝到镜像中 | |
ENY | 构建的时候设置环境变量 |
DockerFile的执行
在完成dockerfile文件的编写后,执行docker build命令,则会根据dockerfile文件中上下文的内容构建新的docker镜像。整个构建过程会被递归处理,如果在dockerfile中包含路径或者URL,都会被递归构建。