Docker Compose:我应该有多个 docker-compose 文件吗?

L_H*_*L_H 9 docker docker-compose

目前,我在同一个 docker-compose.yml 文件中有大约 20 个容器。并非所有容器都是相关的,但它已设置为这种方式,因此我只需运行docker-compose up一次即可启动所有容器。

我是否应该将其分解为多个 docker-compose 文件(例如,每个 docker-compose 文件一个应用程序,其中可能包含多个容器,例如前端 + 数据库)?将所有容器放在一个巨大的 docker-compose 文件中是否有任何明显的缺点?

Adi*_*iii 21

并非所有容器都是相关的,但它已经以这种方式设置,所以我可以只运行 docker-compose up 一次

docker-compose.yml如果出于这一需要将所有容器保留在单个文件中,那么最好选择每个 docker-compose 文件一个项目,而不是创建所有容器。因为您也可以一次启动多个撰写文件。

如果你想启动所有容器,那么只需通过

docker-compose -f docker-compose.projecta.yml -f docker-compose.projectb.yml  up
Run Code Online (Sandbox Code Playgroud)

或者对于单个项目

docker-compose -f docker-compose.projecta.yml
Run Code Online (Sandbox Code Playgroud)

您还可以探索扩展选项

在文件和项目之间共享 Compose 配置

我将选择每个 docker-compose 文件一个项目,因为

  • 它不会创建不必要的容器
  • 它将避免端口冲突(如果两个共享同一端口)
  • 将节省计算成本
  • 创建 docker-compose 堆栈的时间更少
  • 更易于管理

最后验证撰写文件时确实很混乱,因为出现错误时没有正确的行指示,因此配置错误只会传播到单个项目,而不会影响所有其他项目。