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?
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 --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 newdeploy
section withreplicas: 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
The
scale
command is now deprecated, you should useup
instead.more details in https://docs.docker.com/compose/reference/up
You can do it with
replica
as mentioned in https://docs.docker.com/compose/compose-file/#replicas