Obsah

Docker

Docker je open-source nástroj, který umožňuje spouštět aplikace v izolovaných prostředích zvaných kontejnery. Řeší klasický problém vývojářů: „Na mém počítači to funguje, ale na serveru ne.“

Základní pojmy

Práce s Dockerem se točí kolem tří hlavních konceptů:

Jak Docker funguje? (Architektura)

Na rozdíl od virtuálních strojů (VM) Docker nesdílí celý operační systém.

  1. Virtuální stroj: Obsahuje vlastní jádro OS, což je náročné na RAM a CPU.
  2. Docker kontejner: Sdílí jádro hostitelského systému, ale izoluje procesy. Díky tomu je extrémně lehký a startuje v řádu sekund.

Výhody kontejnerizace

Vlastnost Výhoda pro vývojáře
Přenositelnost Kontejner běží stejně na notebooku, v cloudu i na Steam Decku.
Izolace Můžete mít na jednom stroji dvě aplikace vyžadující různé verze stejné knihovny bez konfliktů.
Efektivita Vyšší hustota aplikací na jeden server oproti VM.
Verzování Obrazy lze verzovat a snadno se vrátit k předchozí funkční verzi aplikace.

Základní workflow

1. **Build:** Vytvoření obrazu z Dockerfile (<code>docker build -t moje-aplikace .</code>).
2. **Push:** Odeslání obrazu do registru (např. Docker Hub).
3. **Pull:** Stažení obrazu na cílový server (<code>docker pull moje-aplikace</code>).
4. **Run:** Spuštění kontejneru (<code>docker run -d moje-aplikace</code>).

Docker Compose

Pro složitější aplikace, které se skládají z více kontejnerů (např. web + databáze + cache), se používá nástroj Docker Compose. Pomocí jednoho souboru ``docker-compose.yml`` definujete celou infrastrukturu a spustíte ji jediným příkazem

docker-compose up

.

Vztah k ostatním technologiím: Zatímco Docker se stará o to, jak kontejner vytvořit a spustit, Kubernetes se stará o to, jak tyto kontejnery řídit na stovkách serverů zároveň.

Související: Kubernetes, DevOps, CI/CD, Oficiální web Docker