DockerFile 指令

Dockerfile 指令

Dockerfile的基础知识

  • 每一条关键字指令必须是大写字母,且后面必须带参数

    # 错误实例
    From centos
    FROM
    
  • 指令从上到下,顺序执行

  • # 表示注释

  • 每条指令都会创建一个新的镜像层,并且commit成为一个新的镜像

执行大致流程

  • 1.docker从基础镜像(也就FROM)中运行一个容器
  • 2.执行每一条指令并对容器做出修改
  • 3.执行类似docker commit的操作提交一个新的镜像层
  • 4.然后再基于刚提交的镜像运行一个新的容器
  • 5.执行dockerfile中的下一个指令直到所有的指令都执行完成

指令详解

最新指令请参考官方文档

https://docs.docker.com/engine/reference/builder/

FROM            //基础镜像,当前的镜像是基于哪个镜像的
MAINTAINER      //镜像维护者的姓名和邮箱地址
RUN             //容器构建时需要运行的命令
EXPOSE          //当前容器对外暴漏的端口
WORDKDIR        //指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
ENV             //用来构建镜像过程中设置环境变量
ADD             //将宿主机目录下的文件拷贝到镜像且ADD命令会自动处理URL和解压tar压缩包
COPY            //类似ADD,拷贝文件和目录到镜像中,将构建上下文目录中《源路径》的文件/目录
                //复制到新的一层的镜像内的《目标路径》的位置,不同ADD的是COPY不会处理解压
VOLUMBE         //容器数据卷,用于数据保存和持久化工作
CMD             //1.指定一个容器启动时要运行的命令
                //2.Dockerfile中可以有多个CMD指令,但只有最后一个指令生效
                //3.CMD会被docker run之后的参数替换
ENTRYPOINT       //1.指定一个容器启动时要运行的命令
                //2.ENTRYPOINT和CMD的目的一样,不同的是ENTRYPOINT不会被docker run之后的参数替换
ONBUILD         //当构建一个被继承的DOckerfile时运行命令
                //父镜像在被子镜像继承后父镜像的ONBUILD被触发

你可能感兴趣的:(DockerFile 指令)