使用Docker更新Container的环境变量

时间:2016-07-26 10:45:29

标签: docker environment-variables

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

发布了here的解决方案:

  

您只需停止docker守护程序并在

中更改容器配置      

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

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

另一个here,使用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,但这主要是为了重新配置容器资源。

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

1 个答案:

答案 0 :(得分:9)

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

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