docker
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ů:
- 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.
- Virtuální stroj: Obsahuje vlastní jádro OS, což je náročné na RAM a CPU.
- 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
