LXC و LXD: قصة حاوية أخرى

حاويات OCI هي أكثر أنواع حاويات Linux شيوعًا ، ولكنها ليست النوع الوحيد ولا الأول. LXC (اختصار لـ "LinuX Containers") تسبق Docker بعدة سنوات ، على الرغم من أنها ليست الأولى أيضًا. يعود تاريخ LXC إلى إصداره الأول في عام 2008 ؛ كان الإصدار الأول من Docker ، الذي تم وضع علامة عليه في عام 2013 ، عبارة عن غلاف حول LXC. لا يزال مشروع LXC قويًا ولا يظهر أي علامات على التباطؤ ؛ تم إصدار LXC 5.0 في يوليو ويأتي مع وعد بالدعم حتى عام 2027.

LXC

تم تطوير LXC في الأصل بواسطة IBM وكان جزءًا من تعاون متعدد الأطراف يسعى لإضافة مساحات أسماء إلى النواة. في النهاية ، تولت Canonical إدارة المشروع وتستضيف الآن بنيتها التحتية وتوظف العديد من المشرفين عليها. يتضمن المشروع مكتبة C تسمى liblxc ومجموعة من أدوات سطر الأوامر المبنية عليها والتي يمكن استخدامها لإنشاء الحاويات والتفاعل معها وتدميرها. لا توفر LXC أو تتطلب برنامج خفي لإدارة الحاويات ؛ الأدوات التي يتضمنها تعمل مباشرة على عمليات الحاويات.

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

على عكس Docker ، لا تدعي LXC أنها تتبنى رأيًا حول أنواع العمليات التي يتم تشغيلها في الحاوية. بشكل افتراضي ، سيحاول تشغيل نظام init داخل الحاوية ، والذي يمكنه بعد ذلك تشغيل عمليات أخرى ، وهو أمر يصعب القيام به في حاوية Docker. مع التهيئة الصحيحة ، من الممكن حتى تشغيل حاويات LXC متداخلة داخل حاوية LXC أخرى ، أو تشغيل Docker daemon داخل حاوية LXC.

يتم تعريف حاويات LXC باستخدام ملف تكوين ، والذي يوفر تحكمًا كبيرًا في كيفية إنشاء الحاوية. تُستخدم الأداة المساعدة lxc-create لإنشاء الحاويات. لا يجمع LXC تكوينات الحاويات والصور ؛ بدلاً من ذلك ، تحدد تهيئة الحاوية دليلًا أو جهاز كتلة لاستخدامه في نظام الملفات الجذر للحاوية. يمكن لـ LXC استخدام نظام ملفات جذر موجود ، أو يمكن لـ lxc-create إنشاء واحد سريعًا باستخدام قالب.

نموذج LXC هو برنامج نصي من نوع shell ينشئ نظام ملفات جذريًا باستخدام بعض المتغيرات الأساسية التي تتخطى lxc-create قبل تشغيل النموذج. يتم تضمين عدد قليل من القوالب ؛ من بينها نموذج OCI الذي يستخدم أداة umoci الخاصة بـ SUSE لتنزيل وفك ضغط صورة حاوية من سجل حاوية OCI ، مما يمنح LXC القدرة على تشغيل جميع الحاويات نفسها مثل Docker وأوقات تشغيل OCI الأخرى.

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

طور مشروع LXC أداة تسمى distrobuilder لإنشاء هذه الصور مسبقة الصنع ، والتي يتم توفيرها على خادم الصور الذي تستضيفه Canonical. يمكن استخدام نموذج lxc-download لإنشاء حاوية بناءً على صورة من خادم الصور.

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

LXC و LXD: قصة حاوية أخرى

حاويات OCI هي أكثر أنواع حاويات Linux شيوعًا ، ولكنها ليست النوع الوحيد ولا الأول. LXC (اختصار لـ "LinuX Containers") تسبق Docker بعدة سنوات ، على الرغم من أنها ليست الأولى أيضًا. يعود تاريخ LXC إلى إصداره الأول في عام 2008 ؛ كان الإصدار الأول من Docker ، الذي تم وضع علامة عليه في عام 2013 ، عبارة عن غلاف حول LXC. لا يزال مشروع LXC قويًا ولا يظهر أي علامات على التباطؤ ؛ تم إصدار LXC 5.0 في يوليو ويأتي مع وعد بالدعم حتى عام 2027.

LXC

تم تطوير LXC في الأصل بواسطة IBM وكان جزءًا من تعاون متعدد الأطراف يسعى لإضافة مساحات أسماء إلى النواة. في النهاية ، تولت Canonical إدارة المشروع وتستضيف الآن بنيتها التحتية وتوظف العديد من المشرفين عليها. يتضمن المشروع مكتبة C تسمى liblxc ومجموعة من أدوات سطر الأوامر المبنية عليها والتي يمكن استخدامها لإنشاء الحاويات والتفاعل معها وتدميرها. لا توفر LXC أو تتطلب برنامج خفي لإدارة الحاويات ؛ الأدوات التي يتضمنها تعمل مباشرة على عمليات الحاويات.

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

على عكس Docker ، لا تدعي LXC أنها تتبنى رأيًا حول أنواع العمليات التي يتم تشغيلها في الحاوية. بشكل افتراضي ، سيحاول تشغيل نظام init داخل الحاوية ، والذي يمكنه بعد ذلك تشغيل عمليات أخرى ، وهو أمر يصعب القيام به في حاوية Docker. مع التهيئة الصحيحة ، من الممكن حتى تشغيل حاويات LXC متداخلة داخل حاوية LXC أخرى ، أو تشغيل Docker daemon داخل حاوية LXC.

يتم تعريف حاويات LXC باستخدام ملف تكوين ، والذي يوفر تحكمًا كبيرًا في كيفية إنشاء الحاوية. تُستخدم الأداة المساعدة lxc-create لإنشاء الحاويات. لا يجمع LXC تكوينات الحاويات والصور ؛ بدلاً من ذلك ، تحدد تهيئة الحاوية دليلًا أو جهاز كتلة لاستخدامه في نظام الملفات الجذر للحاوية. يمكن لـ LXC استخدام نظام ملفات جذر موجود ، أو يمكن لـ lxc-create إنشاء واحد سريعًا باستخدام قالب.

نموذج LXC هو برنامج نصي من نوع shell ينشئ نظام ملفات جذريًا باستخدام بعض المتغيرات الأساسية التي تتخطى lxc-create قبل تشغيل النموذج. يتم تضمين عدد قليل من القوالب ؛ من بينها نموذج OCI الذي يستخدم أداة umoci الخاصة بـ SUSE لتنزيل وفك ضغط صورة حاوية من سجل حاوية OCI ، مما يمنح LXC القدرة على تشغيل جميع الحاويات نفسها مثل Docker وأوقات تشغيل OCI الأخرى.

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

طور مشروع LXC أداة تسمى distrobuilder لإنشاء هذه الصور مسبقة الصنع ، والتي يتم توفيرها على خادم الصور الذي تستضيفه Canonical. يمكن استخدام نموذج lxc-download لإنشاء حاوية بناءً على صورة من خادم الصور.

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

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow