1.FROM( from ) :
FROM :
from 表示选择一个镜像作为基础镜像(在一个Dockerfile 中可以使用多条from,来构建多个镜像)
2.ENV :=
用来在镜像创建出的容器中声明环境变量,如:
ENV PYTHONIOENCODING='utf-8'
声明python中文环境变量默认为‘utf-8’
3.WORKDIR
WORKDIR:
用来指定当前的工作目录,使用该命令后,接下来的每一层的工作目录都会切换到指定的目录
4.COPY
copy
复制本机中的目录到镜像指定的目录下
5.ADD
ADD
add 与copy 功能相似,都支持将本地的文件复制到镜像指定目录中,但是add还可以添加网络文件下载地址以及压缩归档文件,推荐使用copy
6.RUN
RUN (shell格式)
RUN ["executable", "param1", "param2"] (exec格式,推荐使用)
run 指令会在前一条命令创建出的镜像的基础上创建一个容器,并在容器中执行run 后面的命令,在命令结束后会将该容器提交给镜像并成为新的镜像
7.CMD
CMD (shell格式)
CMD ["executable", "param1", "param2"] (exec格式,推荐使用)
CMD ["param1", "param2"] (为ENTRYPOINT指令提供参数)
cmd 指令为容器运行时提供默认的命令或参数,一个DockerFile 可以有多条CMD指令,但是只有最后一条CMD指令有效
.run 命令行会覆盖CMD命令
8.ONBUILD
ONBUILD 指令后面跟的是其它指令,例如 RUN , COPY 等。这些指令,在当前镜像构建时不会被执行,当以当前镜像为基础镜像,构建下一级镜像时才会被执行
9.ENTRYPOINT
ENTRYPOINT (shell格式)
ENTRYPOINT ["executable", "param1", "param2"] (exec格式,推荐格式)
entrypoint 与 cmd 命令类似,都是为容器提供默认的启动命令,但是cmd可以添加参数,而entrypoint只能提供命令,注意run 命令行会覆盖CMD命令,但是不能覆盖entrypoint
10.VOLUME
VOLUMN ["", "路径2"...]
VOLUMN
volume命令可以将容器作为匿名卷挂载到宿主机目录上。在执行docker run时,如果没有指定 -v 选项,则默认会将VOLUMN指定的目录挂载为匿名卷
11.EXPOSE
EXPOSE [ ...]
为该镜像生成的容器提供默认的服务端口(不指定expose 命令的话,容器是默认不暴露端口,只能在启用容器时使用-p暴露端口)