Kontejnery vs virtuální stroje
Kontejnery se často srovnávají s virtuálními stroji (VM), ale jsou výrazně lehčí. VM virtualizuje celý operační systém — každý VM potřebuje vlastní OS, což zabírá gigabajty paměti a minuty na start. Kontejner sdílí kernel hostitelského OS a obsahuje jen aplikaci a její závislosti. Startuje za sekundy a zabírá megabajty. Na jednom serveru tak můžete spustit desítky kontejnerů místo jednotek VM.
Dockerfile a Docker Compose
Dockerfile je textový soubor s instrukcemi pro sestavení kontejneru — jaký základní obraz použít (např. Node.js 20), jaké soubory nakopírovat, jaké příkazy spustit (npm install) a jaký port vystavit. Docker Compose umožňuje definovat a spouštět multi-kontejnerové aplikace — například webovou aplikaci, databázi a cache server jedním příkazem docker compose up. Vše je popsané v kódu, verzované v Gitu a opakovatelné.
Docker v praxi webového vývoje
Docker se hodí pro vývojové prostředí (každý člen týmu má identické prostředí), CI/CD pipeline (testy běží v kontejneru), microservices architekturu (každá služba v samostatném kontejneru) a produkční nasazení. U jednodušších webů hostovaných na Vercelu Docker přímo nepotřebujete — Vercel vše řeší za vás. Docker se uplatní u komplexnějších aplikací s databází, background workers nebo specifickými systémovými závislostmi.
Kubernetes a orchestrace
Když máte desítky kontejnerů, potřebujete nástroj pro jejich správu — orchestraci. Kubernetes (K8s) je nejrozšířenější orchestrátor, který řeší automatické škálování, load balancing, rolling updates a self-healing (restart padlých kontejnerů). Pro menší projekty existují jednodušší alternativy jako Docker Swarm nebo managed služby (AWS ECS, Google Cloud Run). V Appitect volíme řešení odpovídající velikosti projektu — ne každý web potřebuje Kubernetes.
Praktický příklad
Klient potřebuje webovou aplikaci s Next.js frontendem, PostgreSQL databází a Redis cache. S Docker Compose vytvoříme soubor, kde definujeme tři služby: web (Node.js s Next.js), db (PostgreSQL s inicializačním skriptem) a cache (Redis). Nový vývojář naklonuje repozitář, spustí docker compose up a za minutu má běžící celou aplikaci — bez instalace PostgreSQL, Redis nebo správné verze Node.js na svém počítači.