🐳 One Command, All Containers
Managing containers individually is painful. Docker Compose defines and runs multi-container apps. One YAML file, one command.
📝 Docker Compose File
version: '3.8'
services:
web:
build: .
ports:
- "8080:8080"
environment:
- DB_HOST=postgres
- REDIS_HOST=redis
depends_on:
- postgres
- redis
postgres:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:alpine
volumes:
postgres_data:
🎯 Commands
# Start all services docker-compose up -d # Build and start docker-compose up --build # Stop all services docker-compose down # Stop and remove volumes docker-compose down -v # View logs docker-compose logs # Follow logs docker-compose logs -f # Execute in service docker-compose exec web bash # Scale service docker-compose up -d --scale web=3 # List services docker-compose ps
💡 Benefits
- Single command for multi-container apps
- Service discovery (use service names as hostnames)
- Persistent volumes
- Environment variables
- Networking between services
“Docker Compose made multi-container apps easy. One command starts everything. Essential for development.”
