问题
I need to start multiple containers for the same image. If i create my compose file as shown below, it works fine.
version: '2'
services:
app01:
image: app
app02:
image: app
app03:
image: app
app04:
image: app
app05:
image: app
Is there any easy way for me to mention the number of instances for the compose instead of copy and pasting multiple times?
回答1:
Updated answer (Oct 2017)
As others mentioned, the docker API has changed. I'm updating my answer since it's the one most people will probably look at.
docker-compose up -d --scale app=5
Unfortunately, we cannot specify this in a docker-compose.yml file currently (as of version 3.5).
Details:
They did introduce the scale
option for version 2.2 and 2.3 of docker-compose but removed it for version 3.0. Also, to use version 2.2 or 2.3 you would need to download an older version of the docker-compose tool. The current version does not support 2.2 or 2.3 (it does support 2.0 or 2.1 however).
There is also a new deploy
section with replicas: 5
but it's only for swarm mode.
--- Old Answer --------------------------------------
docker-compose scale app=5
See https://docs.docker.com/compose/reference/scale/
Then you only need this docker-compose file
version: '2'
services:
app:
image: app
回答2:
The scale
command is now deprecated, you should use up
instead.
docker-compose up --scale app=2
more details in https://docs.docker.com/compose/reference/up
回答3:
You can do it with replica
as mentioned in https://docs.docker.com/compose/compose-file/#replicas
version: '3'
services:
worker:
image: dockersamples/examplevotingapp_worker
networks:
- frontend
- backend
deploy:
mode: replicated
replicas: 6
来源:https://stackoverflow.com/questions/39663096/docker-compose-creating-multiple-instances-for-the-same-image