Skip to content

400 Software Development


Docker Compose

Compose = declarative multi-container orchestration on one host

It expands into many Docker API calls.

Core Concepts

  • Project: everything in one compose file
  • Service: container definition
  • Container: runtime instance
  • Desired state: what should be running

File Structure

services:   
    app:     
        image / build     
        ports     
        volumes     
        environment     
        depends_on  
networks: 
volumes:

Key Mappings

Compose Docker equivalent
services docker run
build docker build
image docker pull
ports -p
volumes -v / --mount
environment -e
networks docker network create
restart restart policy
command override CMD
entrypoint override ENTRYPOINT

Networking (Compose Magic)

  • Auto bridge network
  • Service name = DNS hostname
  • No manual IPs
  • Isolated per project

Lifecycle Commands

docker compose up 
docker compose down 
docker compose restart 
docker compose ps 
docker compose logs 
docker compose exec

What Compose Does NOT Do

  • No health-based readiness
  • No auto-scaling
  • No scheduling
  • No self-healing

When to Use

  • Single container → Docker
  • Multiple cooperating containers → Compose
  • Distributed / scaled system → Kubernetes

See also