Docker Compose: Viac služieb, jeden príkaz (3. diel)

Zjednoduš si vývoj s Docker Compose – spúšťanie viacerých služieb ako jeden stack.

Docker Compose: Viac služieb, jeden príkaz (3. diel)
Photo by Mohammad Rahmani / Unsplash

V predchádzajúcom diely sme si ukázali, ako vytvoriť vlastný image pomocou Dockerfile. Ale čo ak tvoja aplikácia potrebuje databázu, cache, alebo viacero služieb naraz? Presne na to je tu Docker Compose.

🧩 Čo je Docker Compose?

Docker Compose umožňuje definovať a spúšťať viacero Docker kontajnerov ako jeden celok – pomocou súboru docker-compose.yml.

📁 Príklad projektu

./mojaapp/
├── docker-compose.yml
├── app/
│   ├── Dockerfile
│   └── index.js
├── package.json

📝 Obsah docker-compose.yml

version: '3.8'
services:
  web:
    build: ./app
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: mysql:8
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: heslo
      MYSQL_DATABASE: moja_databaza
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

👉 Tento súbor definuje dva kontajnery: web (Node.js appka) a db (MySQL), ktoré sa spúšťajú spolu.

📦 Dockerfile pre aplikáciu

FROM node:18
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD ["node", "index.js"]

🚀 Spustenie celej aplikácie

docker-compose up --build

Tým sa naraz:

  • vytvorí image pre aplikáciu,
  • stiahne a spustí databáza,
  • nastaví porty, premenné a volume.

🛠 Užitočné príkazy

docker-compose ps
# zoznam bežiacich služieb

docker-compose down
# zastavenie a vymazanie všetkých služieb

docker-compose logs -f
# živé logy zo všetkých kontajnerov

🧠 Záver

Pomocou Docker Compose vieš spravovať zložité aplikácie ako jeden celok. Už žiadne spúšťanie databázy zvlášť a ručné prepájanie. V ďalšom diely si ukážeme, ako efektívne pracovať s volumes, networks a optimalizáciou pre produkciu.