Sobes.tech
Junior

Kas tiek izmantots Docker konteinerī?

sobes.tech AI

Atbilde no AI

Docker konteineris izmanto vairākas tehnoloģijas procesu un resursu izolācijai:

  • Linux kodola Namespaces: Nodrošina dažādu sistēmas resursu izolāciju, piemēram:

    • PID (Process ID): Izolē procesus.
    • Net (Network): Izolē tīkla staku.
    • Mount (mnt): Izolē failu sistēmas montēšanas punktus.
    • UTS (Unix Timesharing System): Izolē hosta nosaukumu un domēna nosaukumu.
    • IPC (Interprocess Communication): Izolē starpprocesu komunikācijas mehānismus.
    • User (User & Group ID): Izolē lietotāju un grupu identifikatorus.
  • Control Groups (cgroups): Pārvalda un ierobežo aparatūras resursu izmantošanu konteinerā, tostarp:

    • CPU: Ierobežo procesora laika izmantošanu.
    • Memory: Ierobežo operatīvās atmiņas izmantošanu.
    • Block I/O: Ierobežo diska ievades/izvades caurlaidību.
    • Net I/O: Ierobežo tīkla ievades/izvades caurlaidību.
  • Union File Systems: Apvienota failu sistēma, kas sastāv no vairākiem slāņiem. Docker izmanto OverlayFS, AUFS, Btrfs, ZFS failu sistēmas, kas ļauj efektīvi pārvaldīt attēlus un izveidot tikai izmaiņu slāņus.

  • Docker Daemon process: Pārvalda konteineru dzīves ciklu (izveide, palaišana, apturēšana, dzēšana).

  • Container Runtime: Zema līmeņa konteineru izpilde. Docker dažādos laikos ir izmantojis un atbalstījis dažādus runtime, piemēram, runc (OCI standarts) un containerd.

  • Konteineru attēls: Failu sistēmas slāņu un metadatu kopums, kas nepieciešams programmas palaišanai.

  • Programma: Izpildāmais kods, bibliotēkas, atkarības un konfigurācijas faili, kas veido pašu programmu, kas darbojas konteinerā.

Patiesībā, konteineris ir izolēts process (vai procesu kopums), kas darbojas ierobežotā vidē, ko nodrošina Linux kodols un ar Docker pārvaldību.