Learning
Docker

Docker Compose

Multi-service stack definíció egy fájlban, tipikus compose parancsok és override minták.

Docker Compose

A Docker Compose több konténer egyidejű kezelésére való eszköz. Ahelyett, hogy több docker run parancsot futtatnál, egy docker-compose.yml fájlban (vagy compose.yaml-ban) definiálod a service-eket.

Miért hasznos?

  • Több service (frontend/backend/DB) egyszerre indítható
  • Network és volume konfiguráció egy helyen
  • docker compose up egy paranccsal elindítja a stacket
  • Dev és prod konfig szétválasztható

Alap példa

version: "3.8"

services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
    volumes:
      - .:/app
      - /app/node_modules
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  postgres_data:

Legfontosabb parancsok

docker compose up -d
docker compose logs -f
docker compose logs -f app
docker compose down
docker compose down -v
docker compose up -d --build
docker compose ps
docker compose exec app bash
docker compose restart app

Több konfig fájl (override)

docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Dev override példa:

services:
  app:
    volumes:
      - .:/app
    command: npm run dev

Rövid összefoglaló

  • Compose a legkényelmesebb multi-service fejlesztői stackhez.
  • depends_on indítási sorrendet ad.
  • Override fájlokkal jól szétválasztható dev/prod.

On this page