Co se používá uvnitř Docker kontejneru?
sobes.tech AI
Odpověď od AI
Docker kontejner používá řadu technologií pro izolaci procesů a zdrojů:
-
Namespaces jádra Linux: Poskytují izolaci pro různé systémové zdroje, například:
- PID (ID procesu): Izolují procesy.
- Net (Síť): Izolují síťový zásobník.
- Mount (mnt): Izolují body připojení souborového systému.
- UTS (Unix Timesharing System): Izolují název hostitele a doménové jméno.
- IPC (Interprocesová komunikace): Izolují mechanismy meziprocesové komunikace.
- User (ID uživatele a skupiny): Izolují identifikátory uživatelů a skupin.
-
Kontrolní skupiny (cgroups): Řídí a omezují využívání hardwarových zdrojů procesy uvnitř kontejneru, včetně:
- CPU: Omezení využívání procesorového času.
- Memory: Omezení využívání operační paměti.
- Block I/O: Omezení propustnosti diskového vstupu/výstupu.
- Net I/O: Omezení propustnosti síťového vstupu/výstupu.
-
Unionové souborové systémy: Poskytují sloučený souborový systém složený z několika vrstev. Docker používá souborové systémy jako OverlayFS, AUFS, Btrfs, ZFS. To umožňuje efektivní správu ukládání obrazů a vytváření vrstev pouze pro změny.
-
Proces Docker Daemon: Řídí životní cyklus kontejnerů (vytváření, spuštění, zastavení, odstranění).
-
Runtime kontejneru: Nízké úrovně provádění kontejneru. Docker v různých dobách používal a podporuje různé runtime, například
runc(specifikace OCI),containerd. -
Obrázek kontejneru: Soubor vrstev souborového systému a metadat potřebných k spuštění aplikace.
-
Aplikace: Spustitelný kód, knihovny, závislosti a konfigurační soubory, které tvoří samotný program, který běží uvnitř kontejneru.
V podstatě je kontejner izolovaný proces (nebo sada procesů), který běží v omezeném prostředí, poskytovaném jádrem Linux a spravovaném Dockerem.