1. 指令
FROM
指定base镜像
MAINTAINER
设置镜像的作者,可以是任意字符串
COPY
将文件从build context 复制到镜像,COPY支持两种形式:COPY src dest 与 COPY ["src","dest"],src只能指定build context 中的文件或目录
ADD
与COPY类似,从build context复制文件到镜像。不同的是,如果src是归档文件(tar,zip,tgz,xz等),文件会被自动解压到dest
ENV
设置环境变量,环境变量可被后边的指令使用,如
ENV MY_VERSION 1.3
RUN apt-get install -y mypackage=$MY_VERSION
EXPOSE
指令容器中的进程会监听某个端口,Docker可以将改端口暴露出来
VOLUME
将文件或目录声明为volume
WORKDIR
为 RUN、CMD、ENTRYPOINT、ADD、COPY指令设置镜像中的当前工作目录
RUN
在容器中运行指令的命令
CMD
容器启动时运行指定的命令,Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD可以被docker run 之后的参数替换
ENTRYPOINT
设置容器启动时运行的命令,Dockerfile中可以有多个ENTRYPOINT指令,但只有最后一个生效,CMD 或 docker run 之后的参数会被当做参数传递给ENTRYPOINT
2. 特别说明
- Dockerfile 支持以#开头的注释
- build context指的是用户指定的目录,可以是
.
或者其他目录