Docker DockerFile指令

dockerfile文件是包含了容器配置信息的文本文件
dockerfile文件中包含注释与指令两部分

  • 注释是以”#”开头,后面是注释内容
  • 指令是以大写的指令名开始,后面是指令参数

通过docker build创建镜像的过程中,dockerfile中的没一条命令都会单独生成一个层叠镜像。
层叠镜像也可以用来运行容器,这样的好处是可以根据叠层镜像检查错误原因。


DocerFile指令

  • FROM 镜像版本

    FROM 指向的镜像名必须是已存在的镜像,后续执行都会基于这个镜像来执行。
    指向的镜像被称为基础镜像
    必须是第一条非注释的指令

    FROM <IMAGE>
    FROM <IMAGE>:<TAG>
    
  • MAINTAINER 作者信息

    指定镜像的作者信息,包括镜像的所有者和联系方式

    MAINTAINER <NAME>
    
  • RUN shell命令

    指定当前镜像中运行的命令

    RUN <COMMAND> (SHELL模式)
        是以/bin/sh -c commend形式执行的
    
    RUN ["executable", "param1", "param2"] (exec模式)
        可以指定其他应用来完成指令
        例:RUN ["/bin/bash", "-c", "echo hello"]
    
  • EXPOSE 指定端口

    指定运行该镜像的容器使用的端口

    EXPOSE <PROT>[<PROT>...]
    
  • CMD 执行命令,在容器运行时运行的

    CMD ["executable", "param1", "param2"] (exec模式)
    CMD command param1 param2 (SHELL模式)
    CMD ["param1", "param2"] (作为ENTRYPOIN指令的默认参数)
    
  • ENTRYPOINT 执行命令
    与CMD命令相同使用方式,但shell命令不会因为run镜像后的/bin/bash等命令掩盖

    ENTRYPOINT ["executable", "param1", "param2"] (exec模式)
    ENTRYPOINT command param1 param2 (SHELL模式)
    
  • ADD 将文件添加到镜像中
    包含类似tar的解压功能
    如果单纯复制文件,Docker推荐使用COPY

    ADD <src>...<dest>
    ADD["<src>"..."<dest>""]
    
  • COPY 将文件复制到镜像中

    COPY <src>...<dest>
    COPY["<src>"..."<dest>""]
    
  • VOLUME 像基于镜像创建的容器添加卷
    一个卷是可以存在一个或多个容器的目录

    VOLUME ["/data"]
    
  • WORKDIR 通过镜像创建容器时,在容器内部设置工作目录

    WORKDIR /path/to/workdir
    
  • ENV 设置环境变量

    ENV <key><value>
    ENV <key>=<value>...
    
  • USER 设置镜像以哪个用户运行

    USER user:group
    
  • ONBUID 镜像触发器
    当一个镜像被其他镜像作为基础镜像时执行
    在子镜像构件时,插入指令被触发

    ONBUID [INSTRUCTION]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值