docker如何配置环境变量,


目录
  • docker配置环境变量
    • 1、在 Dockerfile 中使用 ENV 指令设置环境变量
    • 2、在 docker run 命令中设置环境变量
    • 3、查看环境变量
  • docker注入环境变量且设置多个环境变量
    • 方式一
    • 方式二
  • 总结

    docker配置环境变量

    1、在 Dockerfile 中使用 ENV 指令设置环境变量

    格式有两种:

    ENV key value
    ENV key1=value1 key2=value2
    1、key value
    	ENV PYTHON_VERSION 3.5.3
    2、key=value
    	ENV name1=ping name2=on_ip
    3、换行
    	ENV VERSION=1.0 DEBUG=on \
    	    NAME="Happy Feet"
    4、在 Dockerfile 中使用
    	$NODE_VERSION
        $PYTHON_VERSION

    2、在 docker run 命令中设置环境变量

    docker run --env -e

    示例

    docker run -e VAR1=value1 --env VAR2=value2 ubuntu
    docker run --env VAR1=value1 --env VAR2=value2 ubuntu

    You can also use variables that you’ve exported to your local environment:

    export VAR1=value1
    export VAR2=value2
    $ docker run --env VAR1 --env VAR2 ubuntu env | grep VAR
    VAR1=value1
    VAR2=value2

    docker run --env-file

    使用文件作为环境变量,.env 文件如下:

    # This is a comment
    VAR1=value1
    VAR2=value2
    USER  # which takes the value from the local environment

    运行示例:

    docker run --env-file .env ubuntu

    3、查看环境变量

    docker inspect <CONTAINER-NAME> OR <CONTAINER-ID>

    docker注入环境变量且设置多个环境变量

    方式一

    运行docker命令修改

    在运行docker时,直接使用-e或–env,输入需要改变的变量

    例如:

    springboot配置文件如下,可注入环境变量启动端口SERVER_PORT,以及启动配置文件NODE_ENV:dev

    server:
      port: ${SERVER_PORT:8400}
    spring:
      application:
        name: @project.artifactId@
      profiles:
        active:
          - ${NODE_ENV:dev}
      redis:
        database: 2

    启动命令注入如下:

    docker run -it
    
             -e SERVER_PORT=9080
    
            -d 容器id

    替换多个如下:

    docker run -it
    
             -e SERVER_PORT=9080
    
             -e NODE_ENV=prod
    
            -d 容器id

    方式二

    在你的Dockerfile中直接写入环境变量
    # default env
    ENV NODE_ENV dev
    ENV SERVER_PORT 8400

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持PHP之友。

    您可能感兴趣的文章:
    • docker环境变量配置不生效/ect/profile的解决方法
    • Docker没有启动环境变量的问题解决
    • docker启动时环境变量不生效的解决方法

    相关内容