2 min read

Dockerfile vs Docker Compose: rozdiely a prvý stack

Jasné porovnanie Dockerfile a Compose + prvý funkčný stack s dvoma službami.

Tieto dva pojmy sa často miešajú, no riešia rozdielne veci. Keď ich oddelíš správne, nasadzovanie aj lokálny vývoj budú omnoho čitateľnejšie.

Dockerfile vs Compose jednoducho

  • Dockerfile: recept na build jednej image.
  • Docker Compose: orchestrace viacerých služieb, sietí, volume a env.

Mnemotechnika:

  • Dockerfile = „ako postaviť balík“
  • Compose = „ako spustiť celý systém“

Prvý dvoj-službový stack

docker-compose.yml:

YAML
services:
  api:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: api
    ports:
      - "8080:8080"
    depends_on:
      - redis

  redis:
    image: redis:7-alpine
    container_name: redis
    ports:
      - "6379:6379"

Spustenie:

BASH
docker compose up -d
docker compose ps
docker compose logs -f api

Kedy stačí docker run a kedy Compose

docker run je fajn pre jednorazový experiment. Compose používaj hneď, keď máš:

  • viac ako jednu službu,
  • zdieľané volume,
  • repeatable setup pre tím.

Tipy pre tímový workflow

  • Drž docker-compose.yml v repozitári.
  • Pridaj docker compose up -d do README.
  • Používaj konzistentné názvy služieb (api, db, mailpit, frontend).

Najčastejšie chyby

  • Build logika v Compose bez udržiavaného Dockerfile.
  • Chýbajúce depends_on a nejasné poradie štartu.
  • Lokálne workaroundy, ktoré nie sú zapísané v compose súbore.

Mini úloha

  1. Pridaj tretiu službu adminer do stacku.
  2. Spusť stack a over dostupnosť všetkých služieb.
  3. Zastav stack a znovu ho spusti jedným príkazom.

Overenie v praxi

  • Spusť docker compose ps a over, že všetky potrebné služby sú Up.
  • Skontroluj logy cez docker compose logs --tail=100 a hľadaj chyby pri štarte.
  • Over prístupnosť služby cez jej reálny endpoint (HTTP, DB port, healthcheck).

Čo bude ďalej

Ďalší článok ide detailne do Dockerfile základov a vytvoríš si vlastný image krok za krokom.

Previous articlePrettier + EditorConfig pre Nuxt/Vue
Back to article list