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-ით.