gpt4 book ai didi

docker - 从守护进程配置文件设置 docker 容器环境

转载 作者:行者123 更新时间:2023-12-02 09:42:08 25 4
gpt4 key购买 nike

问题:是否可以从 docker 守护进程配置文件设置 docker 容器环境?

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

但是是否可以配置 docker 守护进程文件,例如 /etc/default/docker/etc/sysconfig/docker,然后每个 docker 容器都可以具有相同的环境foo=bar 而不是使用 -e 标志。

[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

最佳答案

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

使用 Bash 函数

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

例如;此 Bash 函数将在 docker run 上自动设置 foo=barbar=baz 环境变量。其他 docker 命令按原样传递。

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 时自动加载它。

使用 Docker Compose

有人提议为默认选项实现一个配置文件(请参阅 https://github.com/docker/docker/issues/7232 ),但该提案已被关闭,转而使用 Docker Compose 。 .

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

关于docker - 从守护进程配置文件设置 docker 容器环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34835027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com