当前位置:   article > 正文

【日常记录-Docker】ARG与ENV

【日常记录-Docker】ARG与ENV
  1. Author:赵志乾
  2. Date2024-08-02
  3. Declaration:All Right Reserved!!!

1. 简介

        ARG主要用于构建时的参数传递,不会保留在生成的镜像中,适用于需要根据不同构建条件动态调整构建过程的场景;

        ENV主要用于设置容器运行时的环境变量,这些变量会保留在生成的镜像中,并且在容器启动时可用,适用于需要在容器内部配置应用程序或脚本的场景;

2. 使用方式

   2.1 ARG
  • 语法:ARG <name> [=<default_value>]
  • 在Dockerfile中以${变量名}的形式引用ARG定义的变量
  • 可以在构建镜像时通过--build-arg选型为ARG指令设置值,这个值将覆盖Dockerfile中定义的默认值
  2.2 ENV
  • 语法:ENV <key> <value> 或 ENV <key>=<value> <key2>=<value2> ...<keyn>=<valuen>
  • 在容器内部可以以${变量名}或$变量名的形式引用ENV设置的环境变量
  • 可以在运行容器时通过-e或--env选项为应用程序设置额外的环境变量,但这些变量不会覆盖ENV在Dockerfile中设置的环境变量,除非它们具有相同的key

3. 示例

  1. # 定义一个构建时变量
  2. ARG HTTP_PREFIX=/usr/local/apache2
  3. # 使用变量来配置Apache的文档根目录(仅在构建过程中有效)
  4. RUN echo "DocumentRoot ${HTTP_PREFIX}/htdocs" > /etc/apache2/apache2.conf
  5. # 设置环境变量
  6. ENV NAME=World
  7. # 在容器内部使用环境变量
  8. CMD echo "Hello, $NAME!"

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/937759
推荐阅读
相关标签
  

闽ICP备14008679号