一尘不染

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

docker

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

解决方案在这里发布:

您只需停止docker daemon并在以下位置更改容器配置

/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

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

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

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


阅读 2031

收藏
2020-06-17

共1个答案

一尘不染

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

如果您的容器中包含无法丢失的文件,则应该使用卷。容器文件系统的其他内容应该是一次性的或不可变的。

2020-06-17