compose config 是什么
docker compose config 渲染并输出最终生效的配置:校验语法、展开环境变量、合并多份覆盖文件的结果。部署前跑一遍,可以在启动容器之前拦住大部分拼写、缩进与引用类错误。
基本信息
| 用途 | 校验并查看最终生效的配置 |
|---|---|
| 常用参数 | -q 只校验、--services 列出服务、--volumes 列出卷、--profiles 列出档位 |
| 输出内容 | 完整 YAML,环境变量已替换为实际值 |
| 变量来源 | 当前目录的 .env 文件与 shell 环境变量 |
| 注意 | 输出可能含敏感值,不要直接贴到公开渠道 |
典型使用场景
- 上线前校验,确认 compose 文件语法与引用都没有问题
- 排查变量没生效:看展开后的最终值是否符合预期
- 多份覆盖文件叠加时确认合并结果,而不是只看基础文件
- CI 里作为门禁,用 -q 在启动前拦住低级配置错误
- 清点某项目包含哪些服务与卷,用于文档与巡检
- 确认相对路径挂载最终解析到哪个绝对路径,避免挂到意外位置
示例
示例
docker compose config -q # 只校验,不输出内容
docker compose config --services # 列出服务名
docker compose config --volumes # 列出卷名
docker compose -f base.yml -f prod.yml config | head -n 40 # 查看叠加后的结果常用参数的作用
| 参数 | 输出 | 典型用途 |
|---|---|---|
| -q | 无输出,只报错误 | CI 门禁与提交前自检 |
| --services | 服务名列表 | 清点与脚本遍历 |
| --volumes | 卷名列表 | 核对数据卷清单 |
| --profiles | 可选档位列表 | 确认档位名与切换方式 |
| 不带参数 | 展开后的完整 YAML | 核对变量替换与合并结果 |
config 通过只说明语法与引用没问题,端口占用、镜像拉取失败这类运行期错误仍要靠 up 才能暴露。
输出里的变量已经替换为实际值,包含口令或内部地址的结果不要直接贴到工单、聊天记录与公开渠道。
把 config -q 放在流水线最前面,配置类错误会在启动容器之前暴露,节省排查时间。