Introduction
Docker Compose is a tool for defining and running multi-container Docker applications. A single YAML file configures all services, making it easy to manage complex applications.
Basic docker-compose.yml
version: "3.8"
services:
web:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:15
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Compose Commands
# Start all services
docker compose up -d
# View running services
docker compose ps
# View logs
docker compose logs -f web
# Stop all services
docker compose down
# Rebuild and restart
docker compose up -d --build
# Scale a service
docker compose up -d --scale web=3
Environment Files
# .env file
DB_USER=admin
DB_PASS=secret123
DB_NAME=production
# docker-compose.yml reference
services:
db:
image: postgres:15
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
Summary
Docker Compose simplifies multi-container management. Define services in YAML, use docker compose up to start everything, and leverage environment files for configuration.
YouTip