## TL;DR
Docker Compose defines and runs multi-container Docker applications using a YAML file (`docker-compose.yml`). One command (`docker compose up`) starts all services. Ideal for development environments and single-host production deployments.
## Core Explanation
Services, networks, volumes defined declaratively. `depends_on` controls startup order (but not readiness — use healthchecks). Environment variables via `.env` file or inline. Profiles enable conditional service activation. Compose v2 is written in Go (plugin). For multi-host, use Docker Swarm or Kubernetes.
## Further Reading
- [Docker Compose Documentation](https://docs.docker.com/compose/)