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.“
Práce s Dockerem se točí kolem tří hlavních konceptů:
Na rozdíl od virtuálních strojů (VM) Docker nesdílí celý operační systém.
| 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. |
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>).
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