为同一个图像创建多个实例

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

version: '2'


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

Is there an easy way for me to mention the number of instances for the compose instead of copy and pasting multiple times?

128203 次浏览

最新答案(二零一七年十月)

正如其他人提到的,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版本,您需要下载旧版本的 码头作曲工具。当前版本不支持2.2或2.3(但它确实支持2.0或2.1)。 也有一个新的 deploy节与 replicas: 5,但它只是为群模式。

——古老的答案——————————————

docker-compose scale app=5

参见 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳

那么你只需要这个 码头作曲文件:

version: '2'


services:
app:
image: app

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

docker-compose up --scale app=2

更多详情请见 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳

You can do it with replica as mentioned in 编写规范 :

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

人们可以使用 docker-compose --compatibility up使 Docker 接受一个部署部分,而不用使用群。

你可以这样做:

version: "3.4"


services:
service1: &service_1
image: app


service2:
<<: *service_1
    

service3:
<<: *service_1

了解更多关于 <<: YAML 中调用的 < < (双左箭头)语法是什么,它在哪里被指定?的信息