Docker Compose is used for running multiple containers and each of the containers run in isolation but can interact with each other when required. Docker Compose file are written in a scripting language called YAML.
We will use example-voting-app that we can find in dockersamples Github repository: https://github.com/dockersamples/example-voting-app
After cloning the repository, we have to build three applications since they are not available in Docker Hub: vote, worker, and result. To build them, run these three commands one by one:
docker build ./vote -t voting-app
docker build ./worker -t worker-app
docker build ./result -t result-app
After building those three applications, we can create a new docker-compose.yml file that containing the following script:
version: "3"
services:
redis:
image: redis
db:
image: postgres:9.4
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
vote:
image: voting-app
ports:
- 5000:80
worker:
image: worker-app
result:
image: result-app
ports:
- 5001:80
We can then run docker-compose up command to run multiple containers.
To run voting-app we can go to localhost:5000 and to run result-app we can go to `localhost:5001”.
Source links:
Overview of Docker Compose