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:
im
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
Edit (from the comments): One can use docker-compose --compatibility up
to make docker accept deploy section without using swarm.
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
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