怎样获取docker容器的环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样获取docker容器的环境变量相关的知识,希望对你有一定的参考价值。

ENV 设置环境变量 ENV ENV指令可以用于为docker容器设置环境变量 ENV设置的环境变量,可以使用 docker inspect命令来查看。同时还可以使用docker run --env =来修改环境变量。 Note: 环境变量的设置要合理,比如将环境变量设置为非交互的 ENV DE... 参考技术A

以下是一种跨平台,兼容windows,linux,max,docker,k8s的获取环境变量的方式:

apihost=Environment.GetEnvironmentVariable("ApiHost",RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? EnvironmentVariableTarget.Machine : EnvironmentVariableTarget.Process);


[附:设置上述环境变量]

1)直接用docker启动的项目.

使用docker run --env ApiHost=http://config.net.cn image:tag直接添加变量

示例:

root@ubuntu:/home/vickey/test_build# docker run --rm -it --env ApiHost=http://config.net.cn   ubuntu:latest root@2bbe75e5d8c7:/# env |grep "TEST" TEST=2

 2)k8s场景(不能用docker run命令启动的项目).

使用dockerfile的ARG和ENV添加变量:

ARG只在构建docker镜像时有效(dockerfile的RUN指令等),在镜像创建了并用该镜像启动容器后则无效(后面有例子验证)。但可以配合ENV指令使用使其在创建后的容器也可以生效。


ARG buildtime_variable=http://config.net.cn        # if not set default_value buildtime_variable would be set ‘‘ ENV  ApiHost=$buildtime_variable

在构建映像时,可以使用--build-arg buildtime_variable=other_value覆盖dockerfile里的变量值default_value

$ docker build --build-arg buildtime_variable=other_value --tag image:tag

Elastic Beanstalk 多容器 Docker 环境变量

【中文标题】Elastic Beanstalk 多容器 Docker 环境变量【英文标题】:Elastic Beanstalk MultiContainer Docker Environment Variables 【发布时间】:2017-12-26 23:38:27 【问题描述】:

我在 ECR 中存储了一些 docker 映像,我正在尝试将它们部署到 ElasticBeanstalk。它们部署得很好,但它们没有从主机中获取任何环境变量。如果我只部署默认的多容器 docker 设置,容器会获取环境变量(使用 eb setenv 设置)。即使尝试在本地运行,它们也不会获取环境变量。有没有其他人遇到过这种情况并找到了解决方案?

【问题讨论】:

【参考方案1】:

您可以在 Dockerrun.aws.json 文件中定义容器环境变量。

例如,以下条目定义了一个具有名称 APP 和值 PYTHON 的环境变量:

"environment": [
  
"name": "APP",
"value": "PYTHON"
  
 ], 

参考-http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html

【讨论】:

以上是关于怎样获取docker容器的环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk 多容器 Docker 环境变量

sh 获取docker容器环境变量

在 docker 容器中获取弹性 beanstalk 环境变量

docker容器怎样实现绑定公网IP/浮动IP

Docker容器环境变量设置与查看

dockerfile 容器添加 环境变量