Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在现有docker容器中永久设置环境变量?_Bash_Docker - Fatal编程技术网

Bash 如何在现有docker容器中永久设置环境变量?

Bash 如何在现有docker容器中永久设置环境变量?,bash,docker,Bash,Docker,我有一个现有的docker容器,我想在该容器中设置一个环境变量。这可以在Docker中完成吗?如果是这样,如何在进程启动时设置环境变量?环境变量通常由子进程继承。在Docker中,可以使用Dockerfile中的ENV命令在图像上设置环境变量。当您调用docker run-e…或在docker compose.yml中定义环境时,您可以配置用于启动容器的默认环境。因此,在容器启动之前,有很多方法可以做到这一点 但是,一旦启动,就无法在正在运行的进程上更改它,Docker也没有命令来更改容器的默认

我有一个现有的docker容器,我想在该容器中设置一个环境变量。这可以在Docker中完成吗?如果是这样,如何在进程启动时设置环境变量?环境变量通常由子进程继承。在Docker中,可以使用Dockerfile中的
ENV
命令在图像上设置环境变量。当您调用
docker run-e…
或在
docker compose.yml中定义环境时,您可以配置用于启动容器的默认环境。因此,在容器启动之前,有很多方法可以做到这一点


但是,一旦启动,就无法在正在运行的进程上更改它,Docker也没有命令来更改容器的默认环境,这只能影响执行进程或重新启动容器(如果它们添加了该功能)。因此,最好的选择是停止并删除现有容器,然后使用正确的环境重新创建它。

环境也可以在入口点或启动脚本(如果存在)中设置。因此,您希望将环境变量添加到已运行的容器中
docker create
docker run