Kontejner je lehká, samostatná a spustitelná balíková jednotka softwaru. Na rozdíl od tradiční virtualizace kontejnery nesimulují celý hardware, ale sdílejí jádro (kernel) hostitelského operačního systému. To z nich dělá extrémně efektivní nástroj pro moderní vývoj softwaru a architekturu mikroslužeb.
Kontejnerizace využívá funkce Linuxového jádra (jako jsou namespaces a cgroups) k izolaci procesů.
| Vlastnost | Kontejnery | Virtuální stroje (VM) |
|---|---|---|
| Operační systém | Sdílejí jádro hostitele. | Každý má vlastní plnohodnotný OS (Guest OS). |
| Velikost | MB (velmi lehké). | GB (těžké). |
| Rychlost startu | Sekundy / Milisekundy. | Minuty. |
| Izolace | Na úrovni procesů (vysoká). | Na úrovni hardwaru (velmi vysoká). |
Nejpopulárnější nástroj pro tvorbu a správu kontejnerů. Definice kontejneru se provádí pomocí textového souboru Dockerfile, ze kterého se sestaví „Image“ (obraz).
Nástroj pro tzv. orchestraci. Když máte tisíce kontejnerů, potřebujete systém, který je bude automaticky spouštět, restartovat při chybě a rozdělovat mezi ně zátěž.
Související pojmy: Docker, Kubernetes, Virtualizace, Cloud Computing, Mikroslužby, Linux Kernel.