YouTip LogoYouTip

Docker Compose

Introduction

Docker Compose is a tool for defining and running multi-container Docker applications. A single YAML file configures all services, making it easy to manage complex applications.

Basic docker-compose.yml

version: "3.8"

services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=mydb
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Compose Commands

# Start all services
docker compose up -d

# View running services
docker compose ps

# View logs
docker compose logs -f web

# Stop all services
docker compose down

# Rebuild and restart
docker compose up -d --build

# Scale a service
docker compose up -d --scale web=3

Environment Files

# .env file
DB_USER=admin
DB_PASS=secret123
DB_NAME=production

# docker-compose.yml reference
services:
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASS}

Summary

Docker Compose simplifies multi-container management. Define services in YAML, use docker compose up to start everything, and leverage environment files for configuration.

← Git Remote RepoDocker Tutorial β†’