Docker — Kontajnerizácia aplikácií
Docker je open-source platforma na vytváranie, distribúciu a spúšťanie aplikácií v izolovaných kontajneroch. Zmenil spôsob, akým vývojári balíčkujú a nasadzujú softvér.
Čo je kontajner?
Kontajner je ľahká, izolovaná jednotka, ktorá obsahuje aplikáciu a všetky jej závislosti — knižnice, runtime, konfiguračné súbory. Na rozdiel od virtuálnych strojov kontajnery zdieľajú jadro hostiteľského OS, čo ich robí rýchlejšími a efektívnejšími.
Kľúčové koncepty
Docker Image — šablóna (read-only), z ktorej sa vytvárajú kontajnery. Definuje sa cez Dockerfile.
Dockerfile — textový súbor s inštrukciami na zostavenie image. Príklad:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Docker Compose — nástroj na definovanie multi-kontajnerových aplikácií pomocou docker-compose.yml. Umožňuje spustiť celý stack jedným príkazom.
Docker Hub — verejný register pre zdieľanie Docker images.
Základné príkazy
docker build -t myapp .— zostaví imagedocker run -d -p 8080:3000 myapp— spustí kontajner na pozadídocker ps— zobrazí bežiace kontajnerydocker logs <id>— výpis logov kontajneradocker exec -it <id> sh— interaktívny shell v kontajneridocker-compose up -d— spustí celý stack
Prečo Docker?
- Konzistentné prostredie — "funguje u mňa" je minulosťou
- Rýchle nasadenie — sekundy namiesto minút
- Izolácia — aplikácie sa navzájom neovplyvňujú
- Škálovateľnosť — jednoduché horizontálne škálovanie
- CI/CD integrácia — automatizované buildy a deploymenty
Best Practices
- Používajte multi-stage buildy na zmenšenie images
- Minimalizujte počet vrstiev v Dockerfile
- Používajte
.dockerignorena vylúčenie nepotrebných súborov - Nikdy neukladajte secrets priamo do image
- Používajte Alpine-based images pre menšiu veľkosť
Docker je základ moderného DevOps a je predpokladom pre orchestračné nástroje ako Kubernetes.