Objective

Define and run multi-container applications with Docker Compose.

Tools & Technologies

  • Docker Compose
  • YAML
  • multi-container

Key Commands

docker compose up -d
docker compose down -v
docker compose logs -f
docker compose ps
docker compose exec web bash

Lab Steps

01
Compose File

Write a docker-compose.yml with services, networks, and volumes.

02
Dependencies

Configure service dependencies with depends_on and healthchecks.

03
Environment Variables

Pass configuration via environment variables and .env files.

04
Override Files

Use docker-compose.override.yml for development vs production config.

Challenges Encountered

  • depends_on doesn't wait for service readiness — only container start
  • Volume bind mounts have different behavior on Linux vs macOS

Key Takeaways

  • Use named volumes for persistence and bind mounts for development
  • Compose V2 is docker compose (no hyphen) — V1 is deprecated