freeCodeCamp/guide/arabic/containers/index.md

8.2 KiB

title localeTitle
Containers حاويات

حاويات

تعتبر الحاويات حلاً لمشكلة كيفية تشغيل البرامج بشكل موثوق عند نقلها من بيئة حاسوبية إلى أخرى. قد يكون ذلك من كمبيوتر محمول في المطور إلى بيئة اختبار ، ومن بيئة مرحلية إلى إنتاج ، وربما من جهاز فعلي في مركز بيانات إلى جهاز افتراضي في سحابة خاصة أو عامة.

بعبارة أخرى ، تتكون الحاوية من بيئة تشغيل كاملة: تطبيق ، بالإضافة إلى كل تبعياتها ومكتباتها وثنائيات أخرى ، وملفات التكوين اللازمة لتشغيلها ، والمجمعة في حزمة واحدة. من خلال نقل الحاويات إلى منصة التطبيقات واعتمادياتها ، يتم استبعاد الاختلافات في توزيعات نظام التشغيل والبنية التحتية الأساسية.

الحاويات هي محاكاة افتراضية على مستوى نظام التشغيل - وهي ميزة نظام تشغيل تسمح فيها kernel بوجود العديد من مثيلات مساحة المستخدم المعزولة. مثل هذه الحالات ، تسمى حاويات قد تبدو وكأنها أجهزة كمبيوتر حقيقية من وجهة نظر البرامج التي تعمل فيها.

الأجهزة الظاهرية

يعد VM مضاهاة لجهاز كمبيوتر حقيقي يقوم بتنفيذ برامج مثل الكمبيوتر الحقيقي. تشغيل VMs على الجهاز المادي باستخدام "hypervisor". ويعمل المشرف ، بدوره ، إما على جهاز مضيف أو على "معدن عاري".

برنامج Hypervisor هو جزء من برنامج أو برنامج ثابت أو جهاز تقوم بتشغيله أجهزة VM. تعمل برامج Hypervisors نفسها على أجهزة الكمبيوتر المادية ، يشار إليها باسم "الجهاز المضيف". يوفر الجهاز المضيف VMs مع الموارد ، بما في ذلك ذاكرة الوصول العشوائي ووحدة المعالجة المركزية. وتنقسم هذه الموارد بين VMs ويمكن توزيعها على النحو الذي تراه مناسبا. لذلك إذا كان أحد أجهزة VM يشغل تطبيقًا أكثر ثقلاً من حيث الموارد ، فيمكنك تخصيص المزيد من الموارد إلى ذلك الجهاز من أجهزة VM الأخرى التي تعمل على نفس الجهاز المضيف.

وكثيراً ما يطلق على جهاز VM الذي يعمل على الجهاز المضيف (مرة أخرى ، باستخدام hypervisor) "جهاز الضيف". تحتوي آلة الضيف هذه على كل من التطبيق وكل ما يحتاجه لتشغيل هذا التطبيق (مثل ثنائيات النظام والمكتبات). كما أنها تحمل مجموعة كاملة من الأجهزة الافتراضية الخاصة بها ، بما في ذلك محولات الشبكة الافتراضية ، والتخزين ، ووحدة المعالجة المركزية (CPU) - مما يعني أن لديها أيضًا نظام تشغيل كامل خاص بها. من الداخل ، فإن آلة الضيف تتصرف كوحدة خاصة بها مع مواردها الخاصة. من الخارج ، نحن نعرف أنه من موارد المشاركة VM المقدمة من قبل الجهاز المضيف.

كما ذكرنا أعلاه ، يمكن تشغيل جهاز الضيف إما على hypervisor مستضاف أو برنامج مراقبة الأجهزة العارية. هناك بعض الاختلافات المهمة بينهما.

أولاً ، يعمل برنامج hypervisor ظاهري مستضافة على نظام تشغيل الجهاز المضيف. على سبيل المثال ، يمكن لجهاز كمبيوتر يعمل بنظام OSX أن يحتوي على VM (على سبيل المثال VirtualBox أو VMware Workstation 8) مثبتًا أعلى نظام التشغيل هذا. لا يمتلك جهاز VM إمكانية الوصول المباشر إلى الأجهزة ، لذا يجب عليه المرور عبر نظام التشغيل المضيف (في حالتنا ، OS OS في Mac).

تتمثل فائدة برنامج hypervisor المستضاف في أن الأجهزة الأساسية أقل أهمية. نظام التشغيل الخاص بالمضيف هو المسؤول عن برامج تشغيل الأجهزة بدلاً من hypervisor نفسه ، ومن ثم فهو يعتبر أكثر توافقًا للأجهزة. ومن ناحية أخرى ، تعمل هذه الطبقة الإضافية بين الجهاز وجهاز hypervisor على إنشاء المزيد من الموارد العامة ، مما يقلل أداء VM.

تعمل بيئة hypervisor المعدن العارية على معالجة مشكلة الأداء من خلال التثبيت على أجهزة الجهاز المضيف وتشغيلها. نظرًا لأنها تعمل بشكل مباشر مع الأجهزة الأساسية ، فإنها لا تحتاج إلى تشغيل نظام تشغيل مضيف. في هذه الحالة ، سيكون أول شيء يتم تثبيته على خادم الجهاز المضيف كنظام التشغيل هو المشرف. بخلاف برنامج hypervisor المستضاف ، فإن برنامج hypervisor المعدن يحتوي على برامج تشغيل خاصة به ويتفاعل مع كل مكون بشكل مباشر لأي مهام I / O أو معالجة أو مهام خاصة بالبرنامج. وهذا يؤدي إلى تحسين الأداء والقابلية والاستقرار. المقايضة هنا هي أن توافق الأجهزة محدود نظرًا لأن برنامج hypervisor يمكن أن يحتوي على العديد من برامج تشغيل الأجهزة المضمنة فيه فقط.

بعد كل هذا الحديث عن برامج Hypervisor ، قد تتساءل عن سبب حاجتنا إلى طبقة "hypervisor" الإضافية هذه بين جهاز VM والجهاز المضيف على الإطلاق.

حسنًا ، بما أن VM لديها نظام تشغيل افتراضي خاص بها ، يلعب hypervisor دورًا أساسيًا في تزويد VMs بمنصة لإدارة نظام التشغيل الضيف هذا وتنفيذه. يسمح لأجهزة الكمبيوتر المضيفة بمشاركة مواردها بين الأجهزة الظاهرية التي تعمل كضيوف فوقها.

حاوية

على عكس جهاز VM الذي يوفر محاكاة الأجهزة الافتراضية ، توفر الحاوية محاكاة افتراضية على مستوى نظام التشغيل من خلال استخراج "مساحة المستخدم". سترى ما أعنيه عندما نقوم بفك عبوة المصطلح.

لجميع المقاصد والأغراض ، تبدو الحاويات مثل جهاز VM. على سبيل المثال ، لديهم مساحة خاصة للمعالجة ، ويمكن تنفيذ الأوامر كجذر ، ولها واجهة شبكة خاصة وعنوان IP ، والسماح بتوجيهات مخصصة وقواعد iptable ، ويمكن تركيب أنظمة الملفات ، وما إلى ذلك.

الفرق الكبير الوحيد بين الحاويات و VMs هو أن الحاوية تتشارك في نواة النظام المضيف مع حاويات أخرى.

تزامن

هناك العديد من أطر تزامن الحاويات في الإنتاج: رصيف الميناء-سرب و kubernetes

قائمة مزودي الحاوية

القائمة التالية هي قائمة صغيرة من أكثر بائعي الحاويات استخدامًا والتي يمكن استخدامها.