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.
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.