2. Docker: teorie (12 min)
Výstup bloku: účastníci rozliší pojmy image, kontejner, volume, síť a stack a vědí, proč Docker používáme.
Problém, který Docker řeší (2 min)
„U mě to funguje.“ Aplikace závisí na verzi PHP, databáze, knihoven a nastavení. Docker zabalí aplikaci i její prostředí, takže běží stejně na notebooku, na serveru i u kolegy.
Pojmy (8 min)
- Image – neměnná šablona (receptura): operační systém + software + nastavení. Stahuje se z registru (Docker Hub). Skládá se z vrstev.
- Kontejner – běžící instance image. Dá se spustit, zastavit, smazat a vytvořit znovu. Data uvnitř kontejneru po smazání zmizí.
- Volume – úložiště mimo kontejner, které přežije jeho smazání (databáze, nahrané soubory).
- Síť – kontejnery ve stejné síti na sebe vidí podle názvu služby (
db,wordpress). - Port mapping –
8080:80= port 8080 na počítači vede na port 80 v kontejneru. - Stack / Compose – popis celého prostředí (více kontejnerů, sítě, volumes) v jednom souboru
compose.yml. - Docker Desktop – aplikace pro Windows a macOS, která obsahuje Docker Engine, příkaz
docker,docker composea grafické rozhraní.
Kontejner versus virtuální stroj
Virtuální stroj má vlastní operační systém. Kontejner sdílí jádro hostitele, proto startuje za sekundy a zabírá řádově méně místa.
Schéma
Dockerfile ──build──▶ image ──run──▶ kontejner
▲ │
Docker Hub volume (data)
Co si zapamatovat (2 min)
- Image je šablona, kontejner je instance.
- Kontejner je zahoditelný; co má přežít, patří do volume.
- Prostředí popisujeme souborem a ukládáme do Gitu, neklikáme ho ručně.