“docker-compose”为同一映像创建多个示例

w41d8nur  于 2022-11-28  发布在  Docker
关注(0)|答案(4)|浏览(185)

我需要为同一个图像启动多个容器。如果我按如下所示创建我的合成文件,它就能正常工作。

version: '2'

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

有没有一种简单的方法可以让我提到合成的示例数,而不是多次复制和粘贴?

hiz5n14c

hiz5n14c1#

更新答复(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
    请参阅 * docker compose up *。
    那么您只需要这个 * docker-compose * 文件:
version: '2'

services:
  app:
    image: app
watbbzwu

watbbzwu2#

您可以使用replica执行此操作,如 Compose specification 中所述:

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

可以使用docker-compose --compatibility up使Docker接受一个部署节而不使用swarm。

wmvff8tz

wmvff8tz3#

scale命令现在已过时,您应该改用up

docker-compose up --scale app=2

有关更多详细信息,请访问 docker compose up

7qhs6swi

7qhs6swi4#

您可以执行以下操作:

version: "3.4"

services:
  service1: &service_1
    image: app

  service2:
    <<: *service_1
    
  service3:
    <<: *service_1

有关<<的更多信息:What is the << (double left arrow) syntax in YAML called, and where's it specced?

相关问题