Sobes.tech
Junior

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.