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

标签 docker environment-variables

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

已发布解决方案 here :

You just stop docker daemon and change container config in

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



需要您停止 docker 守护进程,但我不想这样做。

另一个 here , 使用 docker commit 保存实例信息:

Having said that, you -can- preserve filesystem changes in the container, by committing it as a new image;

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


尽管这对于仅更改环境变量似乎也有点过分。

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

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

最佳答案

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

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

关于docker - 使用Docker更新容器的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587741/

相关文章:

mysql - 将 CGI REMOTE_ADDR 转换为网络字节顺序以便与 MySql INET_NTOA 一起使用

mysql - 使用 MySQL/MariaDB 数据库创建 Docker 容器

docker - HBase主Docker容器完成初始化后自动运行脚本

python - Dockerfile RUN 命令返回 "No such file or directory"

linux - telnet:无法连接到远程主机:没有到主机的路由 - 安装了 docker

python - linux系统环境变量和用户环境变量

angular - Angular2:在index.html中使用环境变量

intellij-idea - 如何在不编辑 bin 中的文件的情况下配置 IntelliJ 产品?

docker - 我应该如何在 Docker Swarm 集群上公开我的 API URL?

python - 在云函数中获取环境变量