首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从守护进程配置文件中设置停靠容器env

从守护进程配置文件中设置停靠容器env
EN

Stack Overflow用户
提问于 2016-01-17 04:15:37
回答 1查看 1.2K关注 0票数 3

问题:是否可以从坞守护进程配置文件中设置坞容器env?

在运行容器时,我们可以使用-e标志在容器中设置特定的环境变量,例如docker run -e foo=bar

但是是否可以配置停靠守护进程文件(如/etc/default/docker/etc/sysconfig/docker ),那么每个停靠器容器都可以使用相同的env foo=bar而不是使用-e标志。

代码语言:javascript
复制
[root@i-7guzl6d7 ~]# cat /etc/sysconfig/docker
# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"

# Set container environment here?
# export FOO=BAR
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-17 05:12:58

不,目前没有这样的选择,但是,有一些选项可以实现这一点。

使用Bash函数

您可以创建一个简单的bash函数来自动设置这些环境变量。

例如,这个Bash函数将自动在foo=barbar=baz环境变量上设置docker run。其他的停靠命令也是按原样传递的。

代码语言:javascript
复制
function docker() { case $* in run* ) shift 1; command docker run -e foo=bar -e bar=baz "$@" ;; * ) command docker "$@" ;; esac }

您可以在shell中运行上面的行来加载函数,或者将其添加到~/.bash_profile~/.bash_login~/.profile中,以便在打开新shell时自动加载它。

使用码头组合

有人建议为默认选项实现一个配置文件(请参阅https://github.com/docker/docker/issues/7232),但这是为了支持使用码头组成而关闭的。

看看docker撰写,看看它是否适合您的用例。Docker Compose允许您创建一个YAML文件,该文件定义了您的“项目”--应该启动的所有容器来运行您的项目,以及它们应该如何配置。在docker-come.yml文件中支持变量替换,该文件允许您在shell中设置在docker-come.yml中使用的环境变量;参见此处的该特性的文档;https://docs.docker.com/compose/compose-file/#variable-substitution

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34835027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档