首页/云/Docker 容器速查/compose configs 挂载配置文件
Compose 编排55 条

compose configs 挂载配置文件

把配置文件按名声明并注入服务:与 secrets 类似的声明方式,适合 nginx 配置、应用参数文件等只读内容的分发。

Docker 容器速查云更新于 2026-10-13

configs 做什么

Compose 的 configs 把配置文件按名字声明并注入服务,写法与 secrets 类似:顶层声明来源(本地文件或已存在的配置对象),服务里按名引用,默认挂载到 /<配置名>,也可以用 target 指定完整路径。适合 nginx 配置、应用参数文件这类只读内容的分发。

基本信息

顶层声明configs: 名称: {file: 路径}
服务引用configs: [名称] 或 {source:, target:}
默认挂载路径/<配置名>,可用 target 覆盖
适用平台Compose V2;集群模式下对应集群配置对象
更新方式内容随容器重建更新,热加载仍要走 reload

典型使用场景

  • 把 nginx、应用配置文件与镜像分离,改配置不动镜像
  • 多服务共享同一份只读配置:一处声明,多处引用
  • 配置需要在容器内固定路径出现,而不依赖外部挂载脚本
  • 把配置纳入编排版本管理,与镜像版本对应发布
  • 需要类似 secrets 机制分发非敏感只读文件的场景

Compose 写法示例

Compose 写法示例
services:
  web:
    image: nginx:1.27-alpine
    configs:
      - source: nginx_conf              # 引用顶层声明的配置
        target: /etc/nginx/nginx.conf   # 容器内落地路径
configs:
  nginx_conf:
    file: ./nginx.conf                  # 来源:仓库里的配置文件

核对挂载结果

核对挂载结果
docker compose config             # 展开查看最终编排
docker compose exec web cat /etc/nginx/nginx.conf   # 确认容器内内容
docker compose up -d --force-recreate web           # 改配置后重建生效

声明与引用要点

要素含义注意
file配置来源为本地文件路径相对编排文件所在目录
external引用已存在的配置对象集群环境中较常见
服务 configs服务侧引用声明不写 target 时用默认路径
target容器内落地路径指向已有文件时会被覆盖
配置文件挂载后内容随容器重建更新;需要不重启就生效的流程,仍要走应用自身的 reload 机制。
target 指向镜像内已存在的路径时会覆盖该文件,覆盖行为要事先验证,避免静默改掉镜像内文件造成意外。
目录级的复杂内容用 configs 逐个声明会很啰嗦,这类场景更适合绑定挂载;configs 的优势在于单文件与版本对应清晰。

易错点

  • 复杂目录结构用 configs 逐个声明会非常啰嗦,目录级内容更适合绑定挂载
  • target 指向镜像内已有路径的覆盖行为要先验证,否则会静默改掉镜像里的文件
  • 把配置改动当成无需重启即生效,实际多数应用仍需 reload 或重建容器
  • 在不支持该字段的旧版本上写 configs 会被忽略或报错,团队内先统一 Compose 版本基线

数据来源与参考

  • Docker 官方文档:Compose configs(docs.docker.com/reference/compose-file/configs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌