docker-compose 为同一个图像创建多个实例

新手上路,请多包涵

我需要为同一个图像启动多个容器。如果我如下所示创建我的撰写文件,它可以正常工作。

 version: '2'

services:
  app01:
    image: app
  app02:
    image: app
  app03:
    image: app
  app04:
    image: app
  app05:
    image: app

我有什么简单的方法可以提及撰写的实例数,而不是多次复制和粘贴?

原文由 KitKarson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 565
2 个回答

更新答案(2017 年 10 月)

正如其他人所提到的,docker API 已经改变。我正在更新我的答案,因为它是大多数人可能会看到的答案。

docker-compose up -d --scale app=5

不幸的是,我们目前无法在 docker-compose.yml 文件中指定这一点(从 3.5 版开始)。

细节:

他们确实为 docker-compose 的 2.2 和 2.3 版本引入了 scale 选项,但在 3.0 版本中删除了它。此外,要使用 2.2 或 2.3 版本,您需要下载旧版本的 docker-compose 工具。当前版本不支持 2.2 或 2.3(但它确实支持 2.0 或 2.1)。还有一个新的 deploy 部分带有 replicas: 5 但它仅适用于集群模式。

--- 旧答案 ————————————–

docker-compose scale app=5

请参阅 https://docs.docker.com/compose/reference/scale/

那么你只需要这个 docker-compose 文件

version: '2'

services:
  app:
    image: app

原文由 Bernard 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 replicahttps://docs.docker.com/compose/compose-file/#replicas 中所述

version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 6

编辑(来自评论):可以使用 docker-compose --compatibility up 使 docker 接受部署部分而不使用 swarm。

原文由 Esra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题