docker-compose config(旧版)或docker compose config(新版)可完成完整配置校验,不启动容器,仅解析验证:成功输出规范化配置即合法,报错则精准定位行号、字段或变量问题,并支持变量插值、路径展开与版本语义校验。

直接运行 docker-compose config(旧版)或 docker compose config(新版 CLI),就能完成一次完整、可靠的配置校验。它不启动容器,只做解析与验证,输出即成功,报错即问题——这是最轻量也最有效的前置检查手段。
基础校验:快速确认语法和结构是否合法
在项目根目录下执行:
-
docker-compose config—— 输出规范化后的完整配置(含变量展开、默认值填充、多文件合并结果) -
docker-compose config --quiet—— 静默模式,无输出表示合规;返回非零退出码(如exit code 1)说明存在错误 - 若使用新版 Compose CLI,命令为
docker compose config,行为一致,推荐优先采用
定位具体错误:看懂报错信息的关键线索
当命令失败时,错误信息通常包含三类关键提示:
-
行号与列号:如
yaml: line 12: did not find expected key,直接打开文件跳转到第 12 行检查缩进或冒号格式 -
字段识别失败:如
services.api: unsupported attribute 'deploy',说明当前 Compose 版本不支持该字段(常见于 v2 文件中误用 v3+ 特性) -
环境变量缺失:如
undefined variable DB_PASSWORD,需检查.env文件或 shell 环境中是否已定义该变量
验证变量和路径:确保运行时行为符合预期
config 命令会真实执行变量插值和路径解析,帮你提前发现隐性问题:
- 检查
${PORT}是否被正确替换为实际值,避免因拼写错误或未设默认值导致空字符串注入 - 确认挂载路径如
./data:/app/data在输出中已转为绝对路径,防止相对路径在不同工作目录下失效 - 若想跳过变量插值(例如调试未设置的环境变量),可加
--no-interpolate参数
配合版本检查:避免“配置合法但无法运行”
config 通过 ≠ 能成功 up,还需确认版本兼容性:
- 查本地支持的 Compose 版本:
docker-compose --version或docker compose version - 对照
version:字段要求:比如3.8需 Docker Engine ≥ 19.03.0;若环境仅支持2.4,就得降级写法或升级引擎 - 注意
version字段本身不是强制校验项,但影响字段可用性——config 会按声明版本做语义校验











