您可以在Dockerfile中使用ARG命令来定义参数名称及其默认值。还可以使用Docker build命令中的一个简单选项来覆盖此默认值。 ENV和ARG之间的区别在于,使用ARG设置环境变量后,以后尝试运行Docker容器时将无法访问该变量。
在本文中,我们将讨论如何在Dockerfile中使用ARG指令来设置参数。请按照以下步骤在Dockerfile中实现ARG指令:
第1步:编写一个Dockerfile来构建映像
您可以使用以下模板使用ARG指令创建Dockerfile。
FROM ubuntu:latest
ARG GREET=GeeksForGeeks
RUN echo "Hey there! Welcome to $GREET" > greeting.txt
CMD cat greeting.txt
上面的Dockerfile从Docker Hub中提取Ubuntu基本映像,并将名为GREET的参数设置为GeeksForGeeks。然后,它使用该参数创建一个文本文件,然后在该文本文件中打印消息。
第2步:构建Docker映像
您可以使用以下命令构建Docker映像。
sudo docker build -t arg-demo .
步骤3:运行Docker容器
要运行Docker容器,可以使用以下Docker Run命令。
sudo docker run -it arg-demo bash
您可以看到已经创建了greetings.txt文件,其中包含使用参数GREET创建的消息。
步骤4:覆盖ARG默认值
您可以使用–build-arg选项和build命令来覆盖ARG的默认值。
sudo docker build -t arg-demo --build-arg GREET=World .
现在,您可以运行容器,打印文件,然后您将看到更新的消息。
总而言之,在本文中,我们讨论了如何使用ARG命令来设置要在整个Dockerfile中使用的参数值。我们还讨论了如何使用–build-arg选项以及Docker build命令覆盖参数值。