Dockerfile 指令详解

霸气de小男生 提交于 2019-12-06 18:03:57

(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:配置当前所在镜像作为其他新建镜像时所执行的操作指令



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!