1.FROM
FROM 指令用于设置在新映像创建过程期间将使用的容器映像。
2.RUN
RUN 指令指定将要运行并捕获到新容器映像中的命令。 这些命令包括安装软件、创建文件和目录,以及创建环境配置等。
示例:
RUN apt-get update
RUN mkdir -p /usr/src/redis
3.COPY
COPY 指令将文件和目录复制到容器的文件系统。文件和目录需位于相对于 Dockerfile 的路径中。
示例:
COPY nginx.conf /etc/nginx/nginx.conf
4.ADD
ADD 指令与 COPY 指令非常类似,但它包含更多功能。除了将文件从主机复制到容器映像,ADD 指令还可以使用 URL 规范从远程位置复制文件。
ADD https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe /temp/python-3.5.1.exe
此示例会将 Python for Windows下载到容器映像的 c:\temp 目录。
5.WORKDIR
WORKDIR 指令用于为其他 Dockerfile 指令(如 RUN、CMD)设置一个工作目录,并且还设置用于运行容器映像实例的工作目录。
示例:
WORKDIR /app 进入容器就在/app目录下
6.CMD
CMD指令用于设置部署容器映像的实例时要运行的默认命令。例如,如果该容器将承载 NGINX Web 服务器,则 CMD 可能包括用于启动Web服务器的指令,如 nginx.exe。 如果 Dockerfile 中指定了多个CMD 指令,只会计算最后一个指令。
示例:
CMD [“c:\Apache24\bin\httpd.exe”, “-w”]
7.ENTRYPOINT
配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个ENTRYPOINT,当指定多个时,只有最后一个起效。[要继承前一个镜像的进程]
示例:
ENTRYPOINT ["/usr/bin/supervisord", “-n”, “-c”, “/etc/supervisord.conf”]
8.ENV
ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,并可以在容器内被脚本或者程序调用。这个机制给在容器中运行应用带来了极大的便利。
ENV hostname = ‘lrw’
9.EXPOSE
EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。
示例:
EXPOSE 80
10.VOLUME
VOLUME是用来指定容器的挂载目录:
VOLUME ["/data1", “/data2”]
#这样子容器下会自行创建/data1和/data2,想要查看主机对应的挂载点可以使用docker inspect 容器ID 查看里面的Mounts