Docker compose is a service within docker that help us to launch multiple container at same time.
Previous Tutorial – Docker Network
Install Docker Compose
install Docker Compose is on multiple platforms
Check Official Website for Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Now check if docker compose installed or not
docker-compose --version
How to use Docker Compose
Navigate a to folder where you want to keep your project
Create a Dockerfile
Create a simple docker file with name ubuntu.dockerfile and paste the bellow code in it.
FROM ubuntu
Now lets create the image using above dockerfile.
docker build -t ubuntu2 -f ubuntu.dockerfile .
Create a Docker Compose YAML file – docker-compose.yml
Create a file with name docker-compose.yml and paste the bellow code in it
version: "3"
networks:
network1:
driver: bridge
services:
web:
image: "nginx:latest"
ports:
- "5000:5000"
networks:
- network1
database:
image: "mysql"
networks:
- network1
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: passwd
MYSQL_DATABASE: db
MYSQL_USER: user-db
MYSQL_PASSWORD: passwd-bdd
volumes:
db_data: {}
Run docker-compose file – UP and DOWN
Once your have create docker–compose file, now make the docker compose up
docker-compose up
Now your compose file is running, you can go to new terminal and check your containers with bellow command
docker ps

You can shut down the compose by using docker-compose down
docker-compose down
Docker Compose for WordPress
Navigate or create a folder, for this example we are creating a folder wordpress. Inside the folder create a docker-compose.yml file and bellow code
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password123
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
Now just we need to start our compose file
docker-compose up
You can open new terminal and check your container working or not
docker ps
Now lets access it using browser, open any browser and type http://localhost:8000/ or ip_address:8000.
Now you can step up your wordpress.
Useful Command Used with Docker Compose
Down the compose
docker-compose down
Up the compose in detach mode
docker-compose up -d
Check all running compose
docker-compose ps
Check environment variable of service in docker compose
docker-compose run <service_name> env
docker-compose run db env
docker-compose run wordpress env
Stop Docker Compose Services
docker-compose stop