start multiple services together (e.g., api + redis + db).
need docker-compose.yml
only need a Dockerfile if you’re building an image from your own code.
Want a reproducible, shareable dev environment (one command for the whole team).
Services need to talk to each other on a private Docker network, using service names as hostnames (e.g., your API connects to Redis via REDIS_HOST=redis).