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

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

01 | 先停掉并清理旧容器

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

bash 复制代码
docker-compose --env-file env.docker down

新版 Docker 也可以写成:

bash 复制代码
docker compose --env-file env.docker down

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

02 | 重命名环境变量文件

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

bash 复制代码
mv env.docker .env.docker

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

① 命名为 .env

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

bash 复制代码
docker-compose up -d

② 命名为 .env.docker

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

bash 复制代码
docker-compose --env-file .env.docker up -d

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

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

bash 复制代码
docker-compose --env-file .env.docker up -d

若命名为 .env:

bash 复制代码
docker-compose up -d

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


关注我,和AI一起成长~

相关推荐
小白的码BUG之路6 分钟前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
duansamve16 小时前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
那明眸似水1 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
知已难寻1 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb2 天前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
方便面不加香菜2 天前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘2 天前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚2 天前
mall 电商项目完整部署---实战
linux·运维·docker·容器
瑞克-桑切斯3 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka