Uživatelské nástroje

Nástroje pro tento web


docker

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ů:

  • Dockerfile: Textový soubor obsahující instrukce pro sestavení obrazu (např. „použij Python 3.9“, „zkopíruj kód“, „nainstaluj knihovny“).
  • Image (Obraz): Nežijící šablona aplikace. Je to „zmrazený“ stav aplikace se vším, co potřebuje ke spuštění.
  • Container (Kontejner): Běžící instance obrazu. Jeden obraz můžete spustit v mnoha kontejnerech současně.
  • Docker Hub: Veřejné úložiště, kde lze stahovat hotové obrazy (např. oficiální obraz pro databázi MySQL nebo webový server Nginx).

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

docker.txt · Poslední úprava: autor: admin