使用Docker更新Container的环境变量

Vic*_*MdB 4 environment-variables docker

我已经设置了一个带有多个docker容器的服务器,可以通过jwilders nginx reversre proxy访问.运行容器时,可以设置VIRTUAL_HOST环境变量.我一直试图找出一种在容器启动后更新这些内容的方法.

这里发布的解决方案:

您只需停止docker守护程序并更改容器配置

/var/lib/docker/containers/[container-id]/config.json

需要你停止docker守护进程,但我宁愿不必诉诸于此.

另一个在这里,使用docker commit来保存实例信息:

话虽如此,您可以通过将其作为新图像提交来保存容器中的文件系统更改;

$ docker run -it --name=foobar alpine sh
$ docker commit foobar mynewimage
$ docker rm foobar
$ docker run -it --name=foobar mynewimage sh
Run Code Online (Sandbox Code Playgroud)

虽然这对于改变环境变量似乎也有点过头了.

我查看了docker update,但这主要是为了重新配置容器资源.

当然,如果我没有其他选择,我将使用上述任何一种方法,但我想知道是否有人找到了其他解决方案?

BMi*_*tch 10

使用新环境变量销毁容器并启动新容器docker run -e ....它与在正在运行的进程上更改环境变量完全相同,您可以将其停止并使用传入的新值重新启动.通过销毁和重新创建新容器来替换重新启动进程的概念.

如果您的容器包含不能丢失的文件,那么您应该使用卷.容器文件系统的其他内容应该是一次性的或不可变的.

  • Docker没有提供修改正在运行的容器中的环境变量的方法,因为操作系统没有提供在正在运行的进程中修改环境变量的方法.你需要销毁和重建. (2认同)