Docker: Dockerfile vs docker-compose.yml
I have a
Dockerfile as the following:
FROM docker/whalesay:latest RUN apt-get update && apt-get install -y fortunes CMD while true; do /usr/games/fortune -a | cowsay; sleep 2; done
I have built the above
Dockerfile as image:
I want to write a
docker-compose.yml for the above image. My understanding is that you can run multiple containers with docker-compose.
So if i want to run 5 images of
docker-whale, how does
docker-compose.yml looks like?
3 Solutions collect form web for “Docker: Dockerfile vs docker-compose.yml”
You could put this
docker-compose.yaml next to your
version: '2' services: docker-whale: image: docker-whale build: .
And then execute the following commands:
# build docker image docker-compose build # bring up one docker container docker-compose up -d # scale up to three containers docker-compose scale docker-whale=3 # overview about these containers docker-compose ps # view combined logs of all containers # use <ctrl-c> to stop viewing docker-compose logs --follow # take down all containers docker-compose down
I assume you want to run 5 containers of docker-whale and not 5 images .
In your case compose.yml will not have information about number of containers. You need to use scale command
docker-compose scale <service-name>=5
docker-whale: image: docker-whale
Then inside same folder run:
docker-compose up -d docker-compose scale docker-whale=5
This assumes your application is scale-aware, but you still can write 5 entries in docker-compose.yml, this is screwdriver but sometimes useful:
docker-whale-1: image: docker-whale docker-whale-2: image: docker-whale docker-whale-3: image: docker-whale docker-whale-4: image: docker-whale docker-whale-5: image: docker-whale