Kumu's wiki
  • SUMMARY
  • Docker
    • 理论概述
    • 安装入门
    • 配置说明
    • 基础命令
    • 镜像构建
    • 镜像存储
      • OverlayFS 存储驱动
      • Habor 安装和升级标注
    • Compose
      • Compose 概览
      • Compose 安装
      • Compose 入门
      • Compose 环境变量
      • Compose 服务扩展
      • Compose 网络
      • Compose 生产实践
      • Compose 启动顺序控制
  • Kubernetes
    • 架构概览
    • 基础术语
    • 集群构建
    • 工作负载
      • Deployments
      • StatefulSets
      • Volumes
      • Persistent Volumes
    • 集群调度
      • 亲和性和反亲和性
      • 污点和容忍机制
    • 集群组件
      • Kubelet
    • 网络方案
      • 网络策略
      • Calico BGP 网络(v2.6.x)
      • Kubelet CNI 源码解析
    • client-go
      • client-go 背后机制
    • Helm
      • Helm 架构
      • Helm 快速上手
      • Helm 使用
      • Helm 命令
    • Google 大规模集群管理器 Borg
由 GitBook 提供支持
在本页
  • 多个 Compose 文件
  • 理解多个 Compose 文件
  • 添加和覆盖配置

这有帮助吗?

  1. Docker
  2. Compose

Compose 服务扩展

上一页Compose 环境变量下一页Compose 网络

最后更新于5年前

这有帮助吗?

Compose 支持两种共享通用配置的方法:

  • 1、通过

  • 2、使用 extends 字段扩展单个服务(3.x 已经不支持了,可以忽略该选项)

多个 Compose 文件

你可以使用多个 Compose 文件自定义 Compose 应用,以适配不同的环境或者工作流。

理解多个 Compose 文件

默认,Compose 读取两个文件,一个是 docker-compose.yml,以及另外一个可选的 docker-compose.override.yml 文件。按照约定,docker-compose.yml 包含了基本的配置。override 文件,顾名思义,包含的配置可以覆盖现有服务或者是全新服务配置。

如果一个服务定义多个文件中,Compose 会使用 中的规则合并配置。

要使用多个覆盖文件,或者不同名称的覆盖文件,可以使用 -f 选项来指定文件列表。Compose 按照命令行指定配置的顺序来合并。具体见 获取更多关于 -f 的信息。

$ docker-compose -f docker-compose.yml -f docker-compose.admin.yml run backup_db

添加和覆盖配置

将配置从原始服务复制到本地服务。如果原始服务和本地服务中都定义了配置选项,则本地值将替换或扩展原始值。

针对单值选项类似 image,command 或者 mem_limit,新值替换旧值。

# original service
command: python app.py

# local service
command: python otherapp.py

# result
command: python otherapp.py

对于多值选项类似 ports,expose,external_links,dns,dns_search,以及 tmpfs,Compose 会合并这些值:

# original service
expose:
  - "3000"

# local service
expose:
  - "4000"
  - "5000"

# result
expose:
  - "3000"
  - "4000"
  - "5000"

在 environment,labels,volume 和 devices 中,Compose 会以 local 优先的方式合并这些值:

# original service
environment:
  - FOO=original
  - BAR=original

# local service
environment:
  - BAR=local
  - BAZ=local

# result
environment:
  - FOO=original
  - BAR=local
  - BAZ=local
# original service
volumes:
  - ./original:/foo
  - ./original:/bar

# local service
volumes:
  - ./local:/bar
  - ./local:/baz

# result
volumes:
  - ./original:/foo
  - ./local:/bar
  - ./local:/baz
Extend services in Compose
使用多个 Compose 文件
Adding and overriding configuration
docker-compose 命令参考