📖 Guide

Docker Compose — Complete Reference

Docker Compose cheat sheet covering CLI commands, service configuration, networking, volumes, environment variables, and common patterns.

77 commands across 9 categories

CLI Commands

CommandDescription
docker compose up
Create and start all services
docker compose up -d
Start services in detached (background) mode
docker compose up --build
Rebuild images before starting
docker compose down
Stop and remove containers, networks
docker compose down -v
Stop and also remove named volumes
docker compose ps
List running containers for the project
docker compose logs -f web
Follow logs for a specific service
docker compose exec web sh
Open a shell in a running service container
docker compose run web npm test
Run a one-off command in a new container
docker compose restart web
Restart a specific service
docker compose pull
Pull latest images for all services
docker compose config
Validate and view the resolved Compose file

Service Configuration

CommandDescription
image: postgres:16-alpine
Use a pre-built image from a registry
build: ./app
Build image from a Dockerfile in the specified directory
ports: - '3000:3000'
Map host port to container port
ports: - '127.0.0.1:5432:5432'
Bind to localhost only (not exposed externally)
expose: - '3000'
Expose port to other services only (not host)
depends_on: - db - redis
Start services in dependency order
depends_on: db: condition: service_healthy
Wait for dependency to be healthy before starting
restart: unless-stopped
Restart policy (no, always, on-failure, unless-stopped)
command: ['node', 'server.js']
Override the default container command
entrypoint: /entrypoint.sh
Override the container entrypoint

Networking

CommandDescription
networks: frontend: backend:
Define custom networks at top level
services: web: networks: - frontend - backend
Attach a service to specific networks
networks: backend: driver: bridge
Set network driver (bridge is default)
networks: proxy: external: true
Use a pre-existing external network
http://db:5432
Services communicate using service name as hostname
services: web: network_mode: host
Use host networking (no port mapping needed)
networks: internal: internal: true
Create an isolated network with no external access
services: web: dns: - 8.8.8.8
Set custom DNS servers for a service

Volumes

CommandDescription
volumes: - ./src:/app/src
Bind mount: sync host directory into container
volumes: - postgres_data:/var/lib/postgresql/data
Named volume: persist data across restarts
volumes: postgres_data:
Define a named volume at top level
volumes: - ./config.yml:/app/config.yml:ro
Read-only bind mount
volumes: - /app/node_modules
Anonymous volume: prevent host overwrite of container path
volumes: data: external: true
Use a pre-existing external volume
docker compose down -v
Remove named volumes when stopping
docker volume ls
List all Docker volumes
docker volume prune
Remove all unused volumes

Environment Variables

CommandDescription
environment: - NODE_ENV=production - DEBUG=app:*
Set environment variables inline
environment: NODE_ENV: production DB_HOST: db
Set environment variables as a map
env_file: - .env
Load variables from an env file
env_file: - .env - .env.local
Load from multiple env files (later overrides earlier)
image: 'postgres:${PG_VERSION:-16}'
Use variable substitution with default value
docker compose --env-file .env.prod up
Specify env file for variable substitution
environment: DB_PASSWORD: ${DB_PASSWORD:?error msg}
Require a variable (error if unset)

Build

CommandDescription
build: context: . dockerfile: Dockerfile.prod
Specify build context and custom Dockerfile
build: args: NODE_VERSION: '20'
Pass build arguments to Dockerfile
build: target: production
Build a specific stage of a multi-stage Dockerfile
build: cache_from: - 'myapp:latest'
Use an existing image as build cache
build: platforms: - linux/amd64 - linux/arm64
Build for multiple platforms
docker compose build --no-cache
Rebuild without using cache
docker compose build --parallel
Build multiple services in parallel
build: context: . additional_contexts: shared: ../shared
Add extra build contexts (Compose v2.17+)

Health Checks

CommandDescription
healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:3000/health']
HTTP health check
healthcheck: test: ['CMD-SHELL', 'pg_isready -U postgres']
Database readiness check
healthcheck: interval: 30s
Time between health checks (default 30s)
healthcheck: timeout: 10s
Max time for a single check to complete
healthcheck: retries: 3
Consecutive failures needed to mark unhealthy
healthcheck: start_period: 40s
Grace period before checks count
healthcheck: disable: true
Disable health check from base image
docker compose ps
View container health status in the status column

Profiles

CommandDescription
services: debug: profiles: - debug
Assign a service to a profile (won't start by default)
docker compose --profile debug up
Start services including a specific profile
docker compose --profile debug --profile monitoring up
Enable multiple profiles
COMPOSE_PROFILES=debug,monitoring docker compose up
Enable profiles via environment variable
services: web: # no profiles = always starts
Services without profiles start with every 'up'
services: seed: profiles: [tools] depends_on: [db]
Tool/utility service that only runs on demand

Common Patterns

CommandDescription
docker compose -f compose.yml -f compose.prod.yml up
Override/merge multiple Compose files
docker compose up -d --scale worker=3
Run multiple instances of a service
docker compose cp web:/app/logs ./logs
Copy files from a container to host
docker compose top
Display running processes for each service
docker compose watch
Auto-rebuild and restart on file changes (Compose v2.22+)
deploy: resources: limits: memory: 512M cpus: '0.5'
Limit CPU and memory for a service
logging: driver: json-file options: max-size: '10m' max-file: '3'
Configure log rotation
docker compose alpha dry-run up
Preview what would happen without executing
include: - ./monitoring/compose.yml
Include another Compose file (v2.20+)

More Guides

🌿
Git Commands
Complete Git command reference — from basics to advanced workflows. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference — modes, motions, editing, search, and advanced features.
🐳
Docker Commands
Complete Docker & Docker Compose command reference — containers, images, volumes, networks, and orchestration.
🔤
Regex Reference
Complete regular expression reference — syntax, patterns, quantifiers, groups, lookaheads, and common recipes.
🐧
Linux Commands
Complete Linux/Bash command reference — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference — pods, deployments, services, configmaps, and cluster management.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, file I/O, comprehensions, and common patterns.
🗃️
SQL Reference
Complete SQL reference — queries, joins, aggregation, subqueries, indexes, and database management.
🌐
Nginx Reference
Complete Nginx configuration reference — server blocks, locations, proxying, SSL, load balancing, and caching.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, and security hardening.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, and universal concurrency patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, functions, concurrency, error handling, and common patterns.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, and ad-hoc commands.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
🎨
CSS
Complete CSS reference — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
📄
HTML
Complete HTML reference — document structure, text content, forms, media, semantic elements, accessibility, and more.
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
💻
Bash
Complete Bash reference — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
🦀
Rust
Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, concurrency, and more.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, and extensions.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, multi-line strings, and common patterns.
🌐
Curl
Curl command-line reference for HTTP requests, authentication, file transfers, debugging, and common API patterns.
Cron
Cron scheduling reference covering syntax, field values, crontab management, and common schedule patterns.
🖥️
Tmux
Terminal multiplexer for managing multiple sessions, windows, and panes from a single terminal.
🔧
Awk
Powerful text processing language for pattern scanning, data extraction, and report generation.
✂️
Sed
Stream editor for filtering and transforming text, line by line.
🔍
Find
Search for files and directories in a directory hierarchy with powerful filtering options.
🔎
Grep
Search text using patterns. Filter lines from files, command output, or streams with regular expressions.
🐘
PHP
Complete PHP cheat sheet covering syntax, OOP, arrays, PDO, and modern PHP 8.x features.
⚙️
C
Complete C programming cheat sheet covering syntax, pointers, memory management, and standard library.
🔷
C++
Complete C++ cheat sheet covering STL containers, OOP, templates, smart pointers, and modern C++ features.
🐬
MySQL
Complete MySQL cheat sheet covering queries, joins, indexes, transactions, and administration.
💅
Sass
Complete Sass/SCSS cheat sheet covering variables, mixins, functions, nesting, and modern module system.
🔐
Chmod
Linux file permission commands and patterns for chmod.
🔢
NumPy
Essential NumPy commands for array manipulation and numerical computing in Python.
🐼
Pandas
Pandas cheat sheet for data manipulation, analysis, and transformation in Python.
🎯
Dart
Dart language cheat sheet covering syntax, types, OOP, null safety, and async patterns.
🔺
Laravel
Laravel PHP framework cheat sheet for routing, Eloquent, Blade, Artisan, and more.
🟩
Node.js
Comprehensive Node.js runtime reference covering modules, file system, HTTP, streams, and more.
Next.js
Next.js App Router reference covering routing, data fetching, server components, and deployment.
🍃
MongoDB
MongoDB reference covering CRUD operations, aggregation, indexes, and administration.
🔥
Firebase
Firebase reference covering Authentication, Firestore, Realtime Database, Cloud Functions, and Hosting.
💲
jQuery
Quick reference for jQuery selectors, DOM manipulation, events, AJAX, and more.
📐
LaTeX
Quick reference for LaTeX document structure, math mode, formatting, and common packages.
🎯
XPath
Quick reference for XPath expressions, axes, predicates, and functions for XML/HTML querying.
Emmet
Quick reference for Emmet abbreviations for lightning-fast HTML and CSS coding.
📦
TOML
Quick reference for TOML configuration file syntax, types, tables, and common patterns.
💎
Prisma
Complete Prisma ORM cheat sheet — schema, queries, migrations, and CLI.
🤖
GitHub Actions
Complete GitHub Actions cheat sheet — workflows, triggers, jobs, and CI/CD patterns.
📦
npm
Complete npm cheat sheet — package management, scripts, publishing, and configuration.
Supabase
Complete Supabase cheat sheet — auth, database, realtime, storage, and edge functions.
🪶
Apache
Complete Apache HTTP Server cheat sheet — virtual hosts, modules, rewrite rules, and SSL.
📡
HTTP Status Codes
Complete reference of all standard HTTP response status codes with descriptions and use cases.
🔤
ASCII Table
Complete ASCII character reference with decimal, hexadecimal, and character values.
🔧
Chrome DevTools
Essential Chrome DevTools shortcuts, commands, and workflows for web developers.
💧
Drizzle ORM
Complete Drizzle ORM reference for schema definition, queries, relations, migrations, and common patterns.
Vercel CLI
Complete Vercel CLI reference for deployment, project management, domains, environment variables, and configuration.
🔄
PM2
Production process manager for Node.js applications with built-in load balancer, monitoring, and zero-downtime reloads.
📺
Screen
GNU Screen terminal multiplexer for persistent sessions, window management, and remote work.
📦
Webpack
Module bundler for JavaScript applications — loaders, plugins, code splitting, optimization, and dev server.
Vite
Next-generation frontend build tool with instant HMR, native ES modules, and optimized production builds via Rollup.

📖 Free, searchable command reference. Bookmark this page for quick access.