如何在不覆盖现有环境变量的情况下使用新的环境变量启动Docker容器?

时间:2020-07-22 23:20:40

标签: docker docker-compose dockerfile

我想将环境变量传递到新容器中,而不会覆盖现有环境变量。我尝试使用--env,但不幸的是它覆盖了所有内容。在容器启动后,我也无法设置变量-我正在使用的软件会发疯。

如何发送这些变量?我希望除了做出崭新的形象外,还有其他选择。

非常感谢您的帮助?

编辑:

我正在启动的图像已经具有预设的环境变量。当我运行以下代码时,这些预设的环境变量将被覆盖:

docker run --interactive --tty --rm --name $name --volume $mount --workdir $workdir -p $p --env DISPLAY=docker.for.mac.host.internal:0 $image bash

我想在容器启动时设置环境变量DISPLAY=docker.for.mac.host.internal:0,而不会覆盖预设的环境变量。

对不起,我很困惑。我希望现在已经清楚了!

1 个答案:

答案 0 :(得分:0)

在您的应用中创建一个名为 DISPLAY2 的新变量并将其设置为新变量。让 DISPLAY 设置旧变量。这样你在 DISPLAY 中的原始变量就不会因为你没有设置它而被覆盖。

docker run --interactive --tty --rm --name $name --volume $mount --workdir $workdir -p $p --env DISPLAY2=docker.for.mac.host.internal:0 $图片重击