Čo sa používa vo vnútri Docker kontajnera?
sobes.tech AI
Odpoveď od AI
Docker kontajner využíva rad technológií na izoláciu procesov a zdrojov:
-
Namespaces jadra Linux: Poskytujú izoláciu pre rôzne systémové zdroje, ako sú:
- PID (ID procesu): Izolujú procesy.
- Net (Sieť): Izolujú sieťový zásobník.
- Mount (mnt): Izolujú body pripojenia súborového systému.
- UTS (Unix Timesharing System): Izolujú názov hostiteľa a doménové meno.
- IPC (Medziprocesová komunikácia): Izolujú mechanizmy medziprocesovej komunikácie.
- User (Používateľské a skupinové ID): Izolujú identifikátory používateľa a skupín.
-
Kontrolné skupiny (cgroups): Riadia a obmedzujú využívanie hardvérových zdrojov pre procesy vnútri kontajnera, vrátane:
- CPU: Obmedzenie využívania procesorového času.
- Memory: Obmedzenie využívania RAM.
- Block I/O: Obmedzenie šírky pásma vstupu/výstupu disku.
- Net I/O: Obmedzenie šírky pásma vstupu/výstupu siete.
-
Unionové súborové systémy: Poskytujú zjednotený súborový systém pozostávajúci z viacerých vrstiev. Docker používa systémy súborov ako OverlayFS, AUFS, Btrfs, ZFS. To umožňuje efektívne spravovanie ukladania obrazov a vytváranie vrstiev iba pre zmeny.
-
Proces Docker Daemon: Riadi životný cyklus kontajnerov (vytváranie, spúšťanie, zastavovanie, odstraňovanie).
-
Runtime kontajnera: Nízkoúrovňové vykonávanie kontajnera. Docker v rôznych časoch používal a podporuje rôzne runtime, ako
runc(špecifikácia OCI),containerd. -
Obrázok kontajnera: Súbor vrstiev súborového systému a metadát potrebných na spustenie aplikácie.
-
Aplikácia: Spustiteľný kód, knižnice, závislosti a konfiguračné súbory, ktoré tvoria samotný program, ktorý beží vnútri kontajnera.
V podstate je kontajner izolovaný proces (alebo súbor procesov), ktorý beží v obmedzenom prostredí, ktoré poskytuje jadro Linux a ktorým spravuje Docker.