Sobes.tech
Junior

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 басқаруында шектеулі ортада жұмыс істейді.