使用Docker更新容器的环境变量



我已经设置了一个带有多个docker容器的服务器,可以通过jwilders nginx reversre代理访问。运行容器时,可以设置VIRTUAL_HOST环境变量。我一直在想办法在容器启动后更新这些内容。

这里发布的解决方案:

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

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

要求您停止docker守护进程,但我不希望采用这种方式。

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

话虽如此,您可以在容器,将其提交为新映像;

$ docker run -it --name=foobar alpine sh
$ docker commit foobar mynewimage
$ docker rm foobar
$ docker run -it --name=foobar mynewimage sh

尽管这对于仅仅更改环境变量来说似乎也有点过头了。

我已经查看了docker更新,但这主要是为了重新配置容器资源。

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

销毁您的容器,并使用docker run -e ...使用新的环境变量启动一个新容器。这与更改正在运行的进程上的环境变量相同,您可以停止它并使用传入的新值重新启动。用销毁和重新创建新容器来取代重新启动进程的概念。

如果您的容器包含无法丢失的文件,那么您应该使用卷。容器文件系统的其他内容应该是可丢弃的或不可变的。

最新更新