怎样获取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 环境变量