Sobes.tech
Junior

Č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.