Docker je platforma a sada nástrojů pro kontejnerizaci aplikací. Umožňuje vývojářům a správcům systémů balit aplikace spolu se všemi jejich závislostmi do tzv. kontejnerů, které lze spouštět konzistentně na různých prostředích (lokální počítač, server, cloud).
Virtualizace je proces, kdy se na nějaké HW/SW simuluje (nebo emuluje) jiný HW/SW.
Co je kontejner
Kontejner je lehká, izolovaná jednotka, která obsahuje:
- samotnou aplikaci
- knihovny a závislosti
- konfiguraci potřebnou ke spuštění
- tedy sestavený image
Na rozdíl od virtuálních strojů kontejnery nesimulují celý operační systém, ale sdílejí jádro hostitelského OS. Díky tomu jsou:
- rychlejší na start
- méně náročné na zdroje
- snadno přenositelné
K čemu se Docker používá
- Vývoj aplikací – „funguje mi to u mě“ problém se minimalizuje
- Testování – snadné spuštění různých verzí aplikace nebo závislostí
- Nasazení (deployment) – stejný kontejner běží v produkci i ve vývoji
- Mikroservisy – každá služba může běžet v samostatném kontejneru
Základní pojmy
- Docker image – neměnná šablona (recept), ze které se vytváří kontejnery
- Docker container – běžící instance image