Docker Compose is a tool for defining and running multi-container applications using a single YAML file. Instead of running many docker run commands manually, you describe all your services (app, database, cache) in docker-compose.yml and start them together with one command.
The problem Compose solves
A real app often has MULTIPLE containers: a web app + a database + a cache + ...
→ manually running each with docker run (ports, networks, volumes, env, dependencies)
is tedious, error-prone, and hard to reproduce/share
→ Compose defines the WHOLE stack in one file → start it all with one command.
