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-ով։