Millele põhineb Docker konteinerite isolatsioon?
sobes.tech AI
Vastus AI-lt
Docker konteinerite isolatsioon põhineb järgmistel põhilistel Linuxi kernetehnoloogiatel ja mehhanismidel:
-
Namespaces (Nimede ruumid): Võimaldavad isolatsiooni nähtavuse ja süsteemi ressurssidele juurdepääsu osas. Docker kasutab mitut tüüpi Namespaces:
PID namespace: Isolatsiooniprotsessid, iga konteiner näeb ainult oma protsesse (PID 1 konteineris).Net namespace: Võrgu stacki isolatsioon (võrgu liidesed, IP-aadressid, pordid, marsruutimisreeglid).Mnt namespace: Failisüsteemi ühenduspunktide isolatsioon.UTS namespace: Hostname ja domeeninime isolatsioon.IPC namespace: Inter-protsesside kommunikatsiooni ressursite isolatsioon (semafoorid, jagatud mälu).User namespace: Kasutaja ja grupi ID-de isolatsioon.
-
Control Groups (cgroups): Võimaldavad piirata ja kontrollida süsteemiressursside (CPU, mälu, I/O, võrguliiklus) kasutust protsessigruppidele. Docker kasutab cgroups:
- CPU koguse või osa piirangud.
- Saadaval mälu piirangud.
- Prioriteetide või piirangute diskI/O-le.
- Võrgu liikluse piirangud.
-
Union File Systems (UnionFS): Loob kihid failisüsteemile. Docker kasutab selliseid UnionFS nagu OverlayFS, AUFS (vanem), Btrfs. Need võimaldavad:
- Luua kergeid kihte Docker piltidele.
- Tõhusalt kasutada kettaruumi ühise kasutamise kaudu põhikihid.
- Muudatuste kirjutamisel konteineris luua COW (Copy-on-Write) kihte, mitte muutma põhivara.
-
Seccomp (Secure Computing Mode): Piirab süsteemikutsed (syscalls), mida protsess konteineris võib teha, vähendades rünnaku pinda. Docker kasutab vaikimisi seccomp profiile enamikule konteineritele.
-
AppArmor / SELinux: Täiendava turvalisuse ja isolatsiooni jaoks võivad olla kasutusel kohustusliku juurdepääsukontrolli (MAC) moodulid, nagu AppArmor või SELinux. Need pakuvad detailsemat kontrolli selle üle, mida protsessid saavad teha (näiteks failidele, võrguresurssidele juurdepääs). Docker võib kasutada AppArmor või SELinux profiile, kui need on hostis seadistatud.