【发布时间】:2016-11-29 23:24:47
【问题描述】:
我设置了一个带有多个 docker 容器的服务器,可以通过 jwilders nginx reversre proxy 访问。当您运行容器时,您可以设置 VIRTUAL_HOST 环境变量。我一直在想办法在容器启动后更新这些内容。
here 发布的解决方案:
您只需停止 docker daemon 并更改容器配置
/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,但那主要是为了重新配置容器资源。
当然,如果我别无选择,我会使用上述任何一种方法,但我想知道是否有人找到了其他解决方案?
【问题讨论】:
-
我认为最好更新一个 Dockerfile,使用一些
ENV abc 123或ENV abc=123 def=456并重新构建/重新启动
标签: docker environment-variables