首页/云/云与容器速查/Compose 文件结构与顶层字段
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条
容器与 Docker106 条
Kubernetes68 条容器排障33 条

Compose 文件结构与顶层字段

一个 compose.yaml 描述多容器应用:services 定义容器,networks/volumes/secrets/configs 定义共享资源,顶层 name 指定项目名;其余顶层键已废弃。

云与容器速查云更新于 2026-10-12
services每个键是一个服务:镜像/构建、端口、卷、环境、依赖
networks自定义网络;不声明时 Compose 自动建 <项目>_default 网络
volumes具名数据卷声明区;服务里引用后按名复用
name项目名(默认取目录名),影响容器/网络/卷前缀

最小完整示例

最小完整示例
name: myapp
services:
  web:
    image: nginx:1.27-alpine
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:
services 里引用 volumes/networks 名称前,要在顶层 volumes/networks 里声明;漏声明会报 undefined volume。

易错点

  • 顶层写 version: "3" 又期待新特性:Compose Spec 已不再需要 version 字段
  • 缩进用 Tab:YAML 直接报错,必须是空格

数据来源与参考

  • Docker Docs:Compose file reference
  • Compose Spec

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌