Docker – 更新容器的环境variables

我已经build立了一个多个docker容器的服务器,可以通过jwilders nginx reversere proxy访问。 运行容器时,可以设置VIRTUAL_HOST环境variables。 我一直在试图找出一个容器启动后更新这些方法。

解决scheme发布在这里 :

您只需停止docker守护进程并更改容器configuration

/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 

虽然这也似乎是刚刚改变一个环境variables的顶部。

我已经看过docker更新 ,但主要是重新configuration容器资源。

当然,如果我没有其他的select,我会使用上面的方法,但我想知道是否有人find了其他的解决scheme?

使用docker run -e ...销毁你的容器并用新的环境variables启动一个新的容器。 这与更改正在运行的进程的环境variables相同,您停止它并使用传入的新值重新启动。replace重新启动进程的概念,同时销毁并重新创build新的容器。

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