我需要为同一个图像启动多个容器。如果我按如下所示创建我的合成文件,它就能正常工作。
version: '2' services: app01: image: app app02: image: app app03: image: app app04: image: app app05: image: app
有没有一种简单的方法可以让我提到合成的示例数,而不是多次复制和粘贴?
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 up -d --scale app=5
scale
deploy
replicas: 5
docker-compose scale app=5
version: '2' services: app: image: app
watbbzwu2#
您可以使用replica执行此操作,如 Compose specification 中所述:
replica
version: '3' services: worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend deploy: mode: replicated replicas: 6
可以使用docker-compose --compatibility up使Docker接受一个部署节而不使用swarm。
docker-compose --compatibility up
wmvff8tz3#
scale命令现在已过时,您应该改用up。
up
docker-compose up --scale app=2
有关更多详细信息,请访问 docker compose up。
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?
<<
4条答案
按热度按时间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 * 文件:
watbbzwu2#
您可以使用
replica
执行此操作,如 Compose specification 中所述:可以使用
docker-compose --compatibility up
使Docker接受一个部署节而不使用swarm。wmvff8tz3#
scale
命令现在已过时,您应该改用up
。有关更多详细信息,请访问 docker compose up。
7qhs6swi4#
您可以执行以下操作:
有关
<<
的更多信息:What is the << (double left arrow) syntax in YAML called, and where's it specced?