Mida kasutatakse Docker konteineris?
sobes.tech AI
Vastus AI-lt
Docker konteiner kasutab mitmeid tehnoloogiaid protsesside ja ressursside isolatsiooniks:
-
Linux kernel Namespace'id: Pakuvad erinevate süsteemiresursside isolatsiooni, nagu:
- PID (Process ID): Isolatsioon protsessidele.
- Net (Network): Isolatsioon võrgustakist.
- Mount (mnt): Failisüsteemi ühenduspunktide isolatsioon.
- UTS (Unix Timesharing System): Isolatsioon hosti nime ja domeeninime jaoks.
- IPC (Interprocess Communication): Isolatsioon protsessidevahelise suhtluse mehhanismidele.
- User (User & Group ID): Isolatsioon kasutajate ja gruppide identifikaatoritele.
-
Control Groups (cgroups): Halda ja piirata seadmete ressursside kasutust konteineris, sealhulgas:
- CPU: Protsessoriaja kasutuse piiramine.
- Memory: Operatiivmälu kasutuse piiramine.
- Block I/O: Kõvaketta sisendi/väljundi läbilaskevõime piiramine.
- Net I/O: Võrgu sisendi/väljundi läbilaskevõime piiramine.
-
Union File Systems: Ühendatud failisüsteem, mis koosneb mitmest kihist. Docker kasutab OverlayFS, AUFS, Btrfs, ZFS failisüsteeme, mis võimaldavad tõhusalt hallata pilte ja luua ainult muudatuste kihte.
-
Docker Daemon protsess: Halda konteinerite elutsüklit (loomine, käivitamine, peatamine, kustutamine).
-
Container Runtime: Madala taseme konteineri täitmine. Docker on erinevatel aegadel kasutanud ja toetanud erinevaid runtime'e, nagu
runc(OCI standard) jacontainerd. -
Konteineri pilt: Failisüsteemi kihtide ja metaandmete kogum, mis on vajalik rakenduse käivitamiseks.
-
Programm: Täidetav kood, teegid, sõltuvused ja konfiguratsioonifailid, mis moodustavad konteineri sees töötava programmi.
Tegelikult on konteiner isoleeritud protsess (või protsesside kogum), mis töötab piiratud keskkonnas, mille pakub Linux kernel ja mida haldab Docker.