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) ircontainerd. -
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.