Docker контейнеринин ичинде эмне колдонулат?
sobes.tech AI
AIден жооп
Docker контейнері процестер мен ресурстарды оқшаулау үшін бірнеше технологияларды пайдаланады:
-
Linux ядросының Namespaces: Әр түрлі жүйелік ресурстарды оқшаулау үшін пайдаланылады, мысалы:
- PID (Process ID): Процестерді оқшаулау.
- Net (Network): Желілік стекке оқшаулау.
- Mount (mnt): Файл жүйесінің монтаж нүктелерін оқшаулау.
- UTS (Unix Timesharing System): Хост атауы мен домен атын оқшаулау.
- IPC (Interprocess Communication): Процессаралық коммуникация механизмдерін оқшаулау.
- User (User & Group ID): Пайдаланушылар мен топтардың идентификаторларын оқшаулау.
-
Control Groups (cgroups): Құрылғылардың ресурстарын пайдалануын басқару және шектеу, мысалы:
- CPU: Процессор уақытын шектеу.
- Memory: Жедел жадты пайдалануын шектеу.
- Block I/O: Дискілік енгізу-шығару өткізу қабілетін шектеу.
- Net I/O: Желілік енгізу-шығару өткізу қабілетін шектеу.
-
Union File Systems: Бірнеше қабаттан тұратын біріктірілген файл жүйесі. Docker OverlayFS, AUFS, Btrfs, ZFS сияқты файл жүйелерін пайдаланады, бұл образдарды тиімді басқаруға және тек өзгерістер үшін қабаттар құруға мүмкіндік береді.
-
Docker Daemon процесі: Контейнерлердің өмірлік циклін басқарады (жасау, іске қосу, тоқтату, жою).
-
Container Runtime: Контейнерді төмен деңгейде орындау. Docker әртүрлі уақыттарда
runc(OCI стандарты) жәнеcontainerdсияқты рантаймдерді пайдаланды және қолдайды. -
Контейнер образі: Жұмысқа қажетті файл жүйесінің қабаттары мен метадеректер жиынтығы.
-
Қосымша: Контейнер ішінде жұмыс істейтін бағдарламаның өзі, оның коды, кітапханалары, тәуелділіктері және конфигурациялық файлдары.
Шын мәнінде, контейнер — бұл оқшауланған процесс (немесе процестер жиынтығы), ол Linux ядросы мен Docker басқаруында шектеулі ортада жұмыс істейді.