ARG 用来设置构建镜像时的变量,ENV 用来设置容器的环境变量。

共同点

  • 这2个指令都是用来设置变量的
  • 两者都可以通过终端的命令行去修改各自定义的变量的值

    不同点

    ENV 声明的变量会覆盖 ARG 声明的同名变量

    示例1
    1. FROM alpine
    2. ARG CONT_IMG_VER
    3. ENV CONT_IMG_VER v1.0.0
    4. RUN echo $CONT_IMG_VER
    开始构建
    1. docker build -t apron/test --build-arg CONT_IMG_VER=v2.0.1 --no-cache .
    结果:
    1. Step 4/4 : RUN echo $CONT_IMG_VER
    2. ---> Running in f340a91b3166
    3. v1.0.0