Sobes.tech
Junior

Kas naudojama Docker konteineryje?

sobes.tech AI

Atsakymas iš AI

Docker konteineris naudoja keletą technologijų procesų ir išteklių izoliacijai:

  • Linux branduolio Namespaces: Užtikrina skirtingų sisteminių išteklių izoliaciją, tokią kaip:

    • PID (Process ID): Izoliuoja procesus.
    • Net (Network): Izoliuoja tinklo sluoksnį.
    • Mount (mnt): Izoliuoja failų sistemos montavimo taškus.
    • UTS (Unix Timesharing System): Izoliuoja kompiuterio vardą ir domeno vardą.
    • IPC (Interprocess Communication): Izoliuoja tarpprocesinę komunikaciją.
    • User (User & Group ID): Izoliuoja naudotojų ir grupių identifikatorius.
  • Control Groups (cgroups): Valdo ir riboja įrenginių išteklių naudojimą konteineryje, įskaitant:

    • CPU: Procesoriaus laiko naudojimo ribojimas.
    • Memory: Operatyviosios atminties naudojimo ribojimas.
    • Block I/O: Disko įvesties/išvesties pralaidumo ribojimas.
    • Net I/O: Tinklo įvesties/išvesties pralaidumo ribojimas.
  • Union File Systems: Sujungtas failų sistema, sudaryta iš kelių sluoksnių. Docker naudoja OverlayFS, AUFS, Btrfs, ZFS failų sistemas, leidžiančias efektyviai valdyti vaizdus ir kurti tik pakeitimų sluoksnius.

  • Docker Daemon procesas: Valdo konteinerių gyvavimo ciklą (sukūrimas, paleidimas, sustabdymas, ištrynimas).

  • Container Runtime: Žemo lygio konteinerio vykdymas. Docker skirtingu metu naudojo ir palaikė įvairius runtime, tokius kaip runc (OCI standartas) ir containerd.

  • Konteinerio vaizdas: Failų sistemos sluoksnių ir metaduomenų rinkinys, būtinas programos paleidimui.

  • Programa: Vykdomas kodas, bibliotekos, priklausomybės ir konfigūracijos failai, sudarantys patį konteinerio programą.

Iš esmės, konteineris yra izoliuotas procesas (arba procesų rinkinys), veikiantis ribotoje aplinkoje, kurią suteikia Linux branduolys ir valdo Docker.