如何使用export命令通过docker exec设置环境变量?

问题描述 投票:0回答:1

我有一个使用祖先my_base_image运行的docker容器。现在,当容器运行时,是否可以使用带有docker exec的export命令设置环境变量?如果是,如何?

我尝试使用以下方法,但不起作用

docker exec -i -t $(docker ps -q --filter ancestor=`my_base_image`) bash -c "export my_env_var=hey"

基本上,我想将my_env_var = hey设置为docker容器内的env变量。我知道可以使用Dockerfile中的.env_fileenv键docker-compose和ENV来完成此操作。但我只想知道是否可以使用docker exec命令

docker docker-compose dockerfile docker-container docker-exec
1个回答
0
投票

这是不可能的。除了可以指定自身启动的进程的初始环境之外,进程永远无法更改其自身之外的任何其他进程的环境。在这种情况下,您的docker exec Shell无法启动主容器进程,因此无法更改该进程的环境变量。

这是您需要停止,删除和重新创建容器的许多更改之一。您应该将此视为极为日常的容器维护,并计划最终删除该容器。例如,这意味着将任何需要持久保存的数据保存在容器外部,最好保存在外部数据库中,但也可能保存在已安装的卷中。

© www.soinside.com 2019 - 2024. All rights reserved.