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

时间:2016-09-23 14:19:14

标签: docker docker-compose docker-container

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

version: '2'

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

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

3 个答案:

答案 0 :(得分:56)

更新的答案(2017年10月)

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

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

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

详细说明:
他们确实为版本2.2和2.3版本的docker-compose引入了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

答案 1 :(得分:22)

现在不推荐scale命令,您应该使用up

docker-compose up --scale app=2

https://docs.docker.com/compose/reference/up

中的详细信息

答案 2 :(得分:13)

您可以使用https://docs.docker.com/compose/compose-file/#replicas

中提到的replica来执行此操作
version: '3'
services:
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 6