docker compose config用于验证语法并输出渲染后的配置,不启动容器,功能包括检查yaml格式、解析环境变量、展开文件引用;支持指定文件、跳过插值;报错提示精准定位问题;可配合grep、yaml.tool等工具增强可读性。
直接运行 docker compose config 就能验证语法并看到最终渲染的配置。
config 命令的核心作用
它不启动任何容器,只做三件事:
- 检查 YAML 格式是否合法(缩进、冒号后空格、嵌套层级等)
- 解析所有环境变量(如
${DB_HOST}),替换成实际值 - 展开所有引用(
extends已废弃,但include和多文件组合仍适用),输出完全合并后的标准配置
常用调用方式
默认读取当前目录下的 docker-compose.yml:
docker compose config
指定非默认文件名或路径:
docker compose -f docker-compose.prod.yml config
跳过环境变量插值(当某些变量暂未定义又想看结构时):
docker compose config --no-interpolate
如何快速定位配置问题
如果报错,错误信息会明确指出位置和类型:
-
yaml: line 12: did not find expected key→ 检查第 12 行缩进是否混用了空格和 Tab,或冒号后漏了空格 -
services.api.environment.DB_PORT: undefined variable DB_PORT→ 确认.env文件、env_file或系统环境里是否设置了该变量 -
service "cache" depends on undefined service "redis"→ 检查服务名拼写,或确认redis是否在services下正确定义
查看完整结构化输出的小技巧
输出内容是纯 YAML,可配合管道工具增强可读性:
- 高亮关键词:
docker compose config | grep -E '^(version|services|image|ports)' - 格式化为带缩进的清晰视图:
docker compose config | python3 -m yaml.tool(需安装 PyYAML) - 保存到文件便于比对:
docker compose config > rendered-config.yml











