docker-compose 为同一张图片创建多个实例
docker-compose creating multiple instances for the same image
我需要为同一个镜像启动多个容器。如果我创建我的撰写文件如下所示,它工作正常。
version: '2'
services:
app01:
image: app
app02:
image: app
app03:
image: app
app04:
image: app
app05:
image: app
有没有什么简单的方法可以让我提到撰写的实例数而不是多次复制和粘贴?
更新答案(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)。
还有一个带有 replicas: 5
的新 deploy
部分,但它仅适用于 swarm 模式。
--- 旧答案-------------------------------------
docker-compose scale app=5
见https://docs.docker.com/compose/reference/scale/
那么你只需要这个docker-compose文件
version: '2'
services:
app:
image: app
scale
命令现已弃用,您应该改用 up
。
docker-compose up --scale app=2
您可以按照 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
编辑(来自评论):可以使用 docker-compose --compatibility up
让 docker 接受部署部分而不使用 swarm。
你可以这样做:
version: "3.4"
services:
service1: &service_1
image: app
service2:
<<: *service_1
service3:
<<: *service_1
有关 <<
的更多信息:
我需要为同一个镜像启动多个容器。如果我创建我的撰写文件如下所示,它工作正常。
version: '2'
services:
app01:
image: app
app02:
image: app
app03:
image: app
app04:
image: app
app05:
image: app
有没有什么简单的方法可以让我提到撰写的实例数而不是多次复制和粘贴?
更新答案(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)。
还有一个带有 replicas: 5
的新 deploy
部分,但它仅适用于 swarm 模式。
--- 旧答案-------------------------------------
docker-compose scale app=5
见https://docs.docker.com/compose/reference/scale/
那么你只需要这个docker-compose文件
version: '2'
services:
app:
image: app
scale
命令现已弃用,您应该改用 up
。
docker-compose up --scale app=2
您可以按照 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
编辑(来自评论):可以使用 docker-compose --compatibility up
让 docker 接受部署部分而不使用 swarm。
你可以这样做:
version: "3.4"
services:
service1: &service_1
image: app
service2:
<<: *service_1
service3:
<<: *service_1
有关 <<
的更多信息: