(1)FROM :Dockfile的第一条指令格式:FROM image 或者 FROM image:tag
(2)MAINTAINER:维护人员信息
(3)RUN:执行指令 ,格式为RUN command 或者RUN ["executable", "param1", "param2"]
RUN command 默认执行 /bin/sh -c .
-c string If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0.
-c 就是执行某个命令
(4)CMD :指定容器启动时执行的命令
(5)EXPOSE :告诉Docker服务端容器暴露的端口
(6)ENV:设置环境变量:格式 ENV key value ,设置的变量可以被bash 使用
(7)ADD 格式 ADD src dest
复制指定的src 目录 到容器的 dest 目录。src 为你要编写的dockfile所在目录的一个相对目录。src也可以是一个URL,还可以是一个tar(自动解压为目录)
(8)COPY ,格式为COPY src dest ,src 为dockfile 所在目录的相对路径文件或者目录 ,使用本地目录为src的时候推荐使用COPY
(9)ENTRYPOINT(进入点): 格式:ENTRYPOINT ["executable", "param1", "param2"] 或者 ENTERPOINT command param1 param2
配置容器启动后执行的命令 并且不可以被docker run 提供的参数覆盖 每个Dockfile只能有一个,多个以最后一个为准
tips:Build时执行RUN,RUN时执行CMD,也就是说,CMD才是镜像最终执行的命令。
CMD命令是可覆盖的,docker run后面输入的命令与CMD指定的命令匹配时,会把CMD指定的命令替换成docker run中带的命令。而ENTRYPOINT指定的命令只是一个“入口”,docker run后面的内容会全部传给这个“入口”,而不是进行命令的替换
VOLUME:挂载点 数据卷相关
USER:指定运行容器时的用户名或者用户ID
WORKDIR:为RUN和CMD,ENTERPOINT指定的目录
ONBUILD:配置当前所在镜像作为其他新建镜像时所执行的操作指令