Docker 实战:Dockerfile的指令

Dockerfile 中的指令用于定义构建 Docker 镜像的具体步骤。以下是一些常用的 Dockerfile 指令及其用途:

  1. FROM

    • FROM 是 Dockerfile 的第一条有效指令,它指定基础镜像,所有后续的操作都是基于这个基础镜像进行的。
    FROM ubuntu:20.04
    
  2. RUN

    • RUN 用于在构建镜像过程中执行命令或脚本,它可以用来安装软件包、修改配置文件等操作。
    RUN apt-get update && apt-get install -y curl
    
  3. COPY

    • COPY 将从构建上下文目录中复制文件或目录到容器内部指定路径。
    COPY myapp /usr/local/bin/
    
  4. ADD

    • ADD 类似于 COPY,但它还可以支持解压缩 tar 文件,并且可以自动下载 URL 地址指向的文件到容器内。
    ADD package.tar.gz /opt/
    ADD http://example.com/app.zip /tmp/
    
  5. WORKDIR

    • WORKDIR 设置工作目录,后续的 RUNCMDENTRYPOINTCOPYADD 指令将在这个目录下执行。
    WORKDIR /app
    
  6. ENV

    • ENV 用于设置环境变量,这些变量将在构建时和容器运行时都可用。
    ENV VAR_NAME value
    
  7. ARG

    • ARG 定义构建参数,可以在构建时通过 --build-arg 参数传递值,通常用于动态配置编译选项或其他需要根据构建场景变化的内容。
    ARG BUILD_ARG=value
    
  8. VOLUME

    • VOLUME 创建一个可以从宿主机或其他容器挂载的数据卷。
    VOLUME ["/data"]
    
  9. EXPOSE

    • EXPOSE 声明容器运行时将会监听的端口,但不会自动映射到宿主机端口,需在运行时使用 -p-P 参数进行端口映射。
    EXPOSE 8080
    
  10. CMD

    • CMD 提供了容器启动时默认要执行的命令和参数,如果用户在运行容器时指定了 docker run 后面的命令,则会覆盖 CMD 指定的命令。
    CMD ["python", "app.py"]
    
  11. ENTRYPOINT

    • ENTRYPOINT 类似于 CMD,也是设置容器启动时执行的命令,但是更具有固定性,一般不会被 docker run 时的命令行参数覆盖,而是将命令行参数附加到 ENTRYPOINT 指定的命令之后。
    ENTRYPOINT ["java", "-jar", "/app/myapp.jar"]
    

以上是 Dockerfile 中常见的一些指令,实际编写时可根据项目需求灵活组合和使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值