docker-compose config是执行up前的关键验证命令,用于检查yaml语法、解析环境变量、合并多文件配置并静默输出结果,确保配置合法且变量生效。

在执行 docker-compose up 之前做环境完整性验证,不是可选项,而是避免“启动即失败”的关键防线。它不依赖容器内部逻辑,而是从宿主机视角检查配置、资源、依赖是否真正就绪——这才是稳定部署的起点。
验证 compose 文件语法与变量解析
很多启动失败其实源于 YAML 写错或环境变量没生效,但错误直到 up 才暴露。用 docker-compose config 提前捕获:
- 运行
docker-compose config:输出规范化 YAML 表示语法合法、变量(如${DB_HOST})已正确替换 - 加
--quiet用于 CI/CD:仅成功时静默退出,失败则报错中断流程 - 若使用多文件叠加(如
docker-compose.override.yml),该命令会自动合并并校验全部内容
确认依赖服务可达性,不止“容器运行”
depends_on 只保证容器启动顺序,不保证应用就绪。必须额外验证端口和服务响应:
- 对数据库:用
nc -z db 5432或pg_isready -h db -p 5432检查连接通路 - 对 HTTP 服务:用
curl -f http://redis:6379/health || exit 1验证健康接口 - 可封装成脚本,在
docker-compose up前统一执行,比如:./scripts/pre-check.sh
检查宿主机资源与冲突项
容器跑不起来,有时问题根本不在镜像里,而在宿主机:
- 端口占用:运行
lsof -i :8080(替换成你服务要用的端口),确认无其他进程抢占 - 磁盘空间:
df -h查看/var/lib/docker所在分区是否充足(尤其挂载卷场景) - Docker 状态:
systemctl is-active docker或docker info确保守护进程正常
预加载镜像与清理残留状态
避免启动时拉镜像卡住,也防止旧容器干扰新实例:
- 提前拉取:运行
docker-compose pull获取所有 service 定义的镜像(跳过 build) - 构建本地镜像:若有
build:段,先执行docker-compose build --no-cache确保最新 - 清理现场:用
docker-compose down -v删除容器+关联卷,再docker volume prune -f清理孤立卷











