代码改变世界

Docker Compose 平滑切换环境变量文件,容器配置不残留

2026-11-13 07:22  AlfredZhao  阅读(0)  评论(0)    收藏  举报

在 Docker Compose 项目里更换环境变量文件时,如果直接改文件名再启动,旧容器可能仍带着上一次的环境变量。笔者按三个步骤操作,可以避免旧配置残留,让容器用上新文件。

01 | 先停掉并清理旧容器

切换前,先用当前的环境变量文件停止并删除正在运行的容器:

docker-compose --env-file env.docker down

新版 Docker 也可以写成:

docker compose --env-file env.docker down

这一步会停止并删除旧容器(默认还会删除网络),期间服务会中断,请在维护窗口内操作。需要说明的是,--env-file 只影响 Compose 读取变量做插值,并不会把变量注入容器;容器内的环境变量来自 compose 文件中的 environment/env_file 配置,因此重建容器即可让新配置生效。

02 | 重命名环境变量文件

用 mv 把文件改成新名字,例如 .env.docker,或者直接改成 .env:

mv env.docker .env.docker

文件名会影响后续启动方式,需要先想清楚:

① 命名为 .env

Docker Compose 默认会自动加载 .env,以后启动不必再加 --env-file 参数,直接运行:

docker-compose up -d

② 命名为 .env.docker

Docker Compose 不会把它当作默认的 .env 处理,因此启动时仍需显式指定:

docker-compose --env-file .env.docker up -d

03 | 用新文件重新启动并检查

按上一步选定的文件名执行对应启动命令。若命名为 .env.docker:

docker-compose --env-file .env.docker up -d

若命名为 .env:

docker-compose up -d

启动后,用 docker-compose ps 查看容器运行状态,用 docker-compose logs 排查启动报错;如需确认容器内实际生效的环境变量,可执行 docker-compose exec <服务名> env 查看。这样切换环境变量文件时,容器配置能正确更新,也不容易留下旧配置的隐患。


关注我,和AI一起成长~