it:sw:docker
Obsah
Docker: Kontejnerizace a izolace
Docker umožňuje spouštět aplikace v izolovaných prostředích zvaných kontejnery. Na rozdíl od virtuálních strojů jsou kontejnery extrémně lehké, rychle startují a sdílejí jádro operačního systému hostitele.
1. Kontejner vs. Virtuální stroj (VM)
Hlavní rozdíl spočívá v tom, co všechno se izoluje:
- Virtuální stroj: Obsahuje celý vlastní operační systém (Guest OS), což zabírá gigabyty místa a vyžaduje hodně RAM. Běží nad Hypervizorem.
- Docker kontejner: Sdílí jádro (Kernel) hostitelského systému. Obsahuje pouze aplikaci a její knihovny. Díky tomu je kontejner o řád menší a startuje v řádu milisekund.
—
2. Základní pojmy Dockeru
Abychom mohli s Dockerem pracovat, musíme pochopit jeho tři pilíře:
- Dockerfile: Textový soubor s instrukcemi, jak má být aplikace sestavena (např. „použij Python 3.9“, „zkopíruj kód“, „nainstaluj knihovny“).
- Image (Obraz): Neaktivní šablona vytvořená z Dockerfile. Je to „zmrazený“ stav aplikace připravený ke spuštění.
- Container (Kontejner): Běžící instance obrazu. Jeden obraz můžete spustit v deseti kontejnerech najednou, každý bude mít vlastní izolované prostředí.
—
3. Jak Docker zajišťuje izolaci?
Docker využívá pokročilé funkce linuxového jádra, aby zajistil, že procesy v kontejneru nevidí ven a naopak:
- Namespaces: Zajišťují, že kontejner má vlastní pohled na systém (vlastní procesy, síťové rozhraní, uživatele).
- Control Groups (cgroups): Omezují zdroje. Můžete říct, že tento kontejner nesmí využít více než 512 MB RAM a 10 % CPU.
- Chroot / Union File System: Kontejner vidí jen svůj vlastní souborový systém a nemá přístup k souborům hostitele (pokud mu to explicitně nepovolíte přes tzv. Volumes).
—
4. Praktické výhody pro vývoj a provoz
- Konzistence: Vývojář, tester i produkční server spouštějí identický kontejner.
- Snadné škálování: Potřebujete větší výkon? Jednoduše spustíte další instance kontejneru.
- Čistý systém: Instalujete software do kontejneru, nikoliv přímo do operačního systému. Když aplikaci smažete, v systému nezůstane žádný „nepořádek“.
—
5. Docker Compose: Více kontejnerů najednou
Moderní aplikace se skládají z více částí (např. webový server + databáze + cache). Docker Compose umožňuje definovat celou tuto infrastrukturu v jednom YAML souboru a spustit ji jediným příkazem.
# Příklad docker-compose.yml
services:
web:
image: my-python-app
ports:
- "80:80"
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
Související články:
Tagy: it docker containers devops virtualization infrastructure
it/sw/docker.txt · Poslední úprava: autor: admin
