介绍

类似一个构建镜像的清单,docker可以根据这个清单进行镜像的自动化构建

保留字

1. FROM

指定基础镜像,并且必须是第一条指令

FROM <image>
FROM <image>:<tag>

2. MAINTAINER

指定作者

MAINTAINER <name>

3. RUN

在构建镜像时需要运行的命令

例如:

RUN yum -y install vim
RUN ["./test.php", "dev", "offline"]  # 等价于 RUN ./test.php dev offline

4. CMD

容器启动后需要运行的命令

例如:

CMD echo "hello world"
CMD ["catalina.sh", "run"]

5. ENTRYPOINT

容器启动后需要运行的命令,类似于CMD,但是不会被docker run后面的命令覆盖,这些命令参数会被当做参数送给ENTRYPOINT指令指定的程序。

例如:

FROM nginx
 
ENTRYPOINT ["nginx", "-c"]  # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参

# nginx -c /etc/nginx/nginx.conf

6. ENV

在镜像构建时,创建环境变量

例如:

ENV MY_PATH /usr/mytest
 
# 使用环境变量
WORKDIR $MY_PATH

7. EXPOSE

当前容器对外暴露出的端口

例如:

EXPOSE 80

8. COPY

复制本地文件或目录到镜像中

例如:

COPY 【源路径】【容器路径】

9. ADD

将宿主机目录下(或远程文件)的文件拷贝进镜像,且会自动处理URL和解压tar压缩包。

例如:

ADD https://example.com/file.tar.gz /tmp/

10. WORKDIR

设置工作目录,后续命令将在该目录下执行

例如:

WORKDIR /app