Cheatsheets/Docker Compose
DevOps

Docker Compose

Multi-container orchestration — services, ports, volumes, and networks.

CLI commands

docker compose up -dStart services in background
docker compose downStop + remove containers
docker compose restartRestart all services
docker compose psList running services
docker compose logs -fFollow logs
docker compose buildBuild service images
docker compose exec web shShell into service
docker compose configValidate compose file

service: build

build: .Build from Dockerfile in cwd
build: context: ./dir dockerfile: Dockerfile.devCustom Dockerfile path
image: nginx:alpineUse pre-built image
build: args: APP_HOME: appPass build args

service: ports & env

ports: - "8000:80"Map host:container port
expose: ["3000"]Expose to linked services only
environment: KEY: valueInline env vars
env_file: .envLoad env vars from file

service: volumes & restart

volumes: - .:/appBind mount
volumes: - db_data:/var/lib/dbNamed volume
restart: unless-stoppedAuto-restart policy
depends_on: - dbStart after dependency
depends_on: db: condition: service_healthyWait for health check

Healthcheck & networks

healthcheck: test: ["CMD","curl","-f","http://localhost"] interval: 30sHealth probe
networks: frontend:Define custom network
dns: - 8.8.8.8Custom DNS servers
labels: app: myappMetadata labels