Ar ko balstās Docker konteineru izolācija?
sobes.tech AI
Atbilde no AI
Docker konteineru izolācija ir balstīta uz šādām galvenajām Linux kodola tehnoloģijām un mehānismiem:
-
Namespaces (Vārdu telpas): ļauj izolēt redzamību un piekļuvi sistēmas resursiem. Docker izmanto vairākus Namespaces tipus:
PID namespace: Izolē procesus, katrs konteineris redz tikai savus procesus (PID 1 konteinerī).Net namespace: Izolē tīkla staku (tīkla interfeisus, IP adreses, portus, maršrutēšanas noteikumus).Mnt namespace: Izolē failu sistēmas montēšanas punktus.UTS namespace: Izolē hostname un domēna vārdu.IPC namespace: Izolē starpprocesu komunikācijas resursus (semafori, koplietojamu atmiņu).User namespace: Izolē lietotāju un grupu ID.
-
Control Groups (cgroups): ļauj ierobežot un kontrolēt sistēmas resursu (CPU, atmiņa, I/O, tīkla trafiks) patēriņu procesu grupām. Docker izmanto cgroups:
- CPU skaita vai daļas ierobežojumus.
- Pieejamās atmiņas ierobežojumus.
- Prioritātes vai ierobežojumus diska I/O.
- Tīkla trafika ierobežojumus.
-
Union File Systems (UnionFS): Izveido failu sistēmas slāņus. Docker izmanto tādas UnionFS kā OverlayFS, AUFS (vecāka), Btrfs. Tie ļauj:
- Izveidot vieglus slāņus Docker attēliem.
- Efektīvi izmantot diska vietu koplietošanas dēļ.
- Veicot izmaiņas konteinerā, izveidot COW (Copy-on-Write) slāņus, nemainot pamata attēlu.
-
Seccomp (Secure Computing Mode): Ierobežo sistēmas izsaukumus (syscalls), kurus var veikt process konteinerā, tādējādi samazinot uzbrukuma virsmu. Docker izmanto noklusējuma seccomp profilus lielākajai daļai konteineru.
-
AppArmor / SELinux: Papildu drošībai un izolācijai var izmantot obligātās piekļuves kontroles (MAC) moduļus, piemēram, AppArmor vai SELinux. Tie nodrošina detalizētāku kontroli pār to, ko var darīt procesi (piemēram, piekļuve failiem, tīkla resursiem). Docker var izmantot AppArmor vai SELinux profilus, ja tie ir konfigurēti uz hosta sistēmas.