موسوعة عربية للمعرفة التقنية والعلمية الموثقة

ما هي الحاويات (Containers)؟
خلاصة سريعة: الحاويات (Containers) وحدات خفيفة تغلف التطبيق ومكتباته وإعداداته، فتعمل بالطريقة نفسها على أي خادم يحمل نواة نظام تشغيل متوافقة. وتُبنى من صورة (Image) ثابتة، وتُعزل بمساحات أسماء وحدود موارد. وهي سريعة وقابلة للنقل، لكن عزلها أخف من عزل الأجهزة الافتراضية، ويبقى أمنها مسؤولية الإعداد والتحديث.
ما هي الحاويات؟
الحاوية وحدة تشغيل تضم التطبيق وملفاته التنفيذية ومكتباته وإعداداته، وتعمل معزولة عن بقية النظام. وهي لا تحمل نظام تشغيل كاملًا، بل تستخدم نواة نظام التشغيل المضيف، وتُمنح نصيبًا من المعالج والذاكرة. ولهذا يبدأ تشغيلها في جزء صغير من الوقت الذي يحتاجه جهاز افتراضي.
وقد شاع المصطلح مع Docker، غير أن الفكرة أقدم منه: تعود جذورها إلى آليات عزل العمليات في أنظمة يونكس، ثم صارت معيارًا صناعيًا. واليوم تدير المنصات الحاويات بأعداد كبيرة، وتوزعها على خوادم متعددة، وتعيد تشغيلها عند تعطلها.
والفرق الجوهري بين الحاوية والبرنامج المثبت على الخادم أن الحاوية تحمل بيئتها معها. فلن يختلف سلوكها بسبب مكتبة مثبتة على المضيف أو إصدار مختلف منها، وهذا ما يجعلها أداة عملية لنشر التطبيقات المتكرر.
كيف تعمل الحاويات؟
تعتمد الحاوية على ثلاث ركائز. الأولى الصورة (Image)، وهي قالب للقراءة فقط يضم نظام الملفات والتطبيق، ويُبنى على طبقات تتراكم فوق بعضها. والثانية وقت التشغيل (Runtime)، وهو البرنامج الذي ينشئ الحاوية من الصورة ويشغّل عمليتها. والثالثة آليات النواة التي توفّر العزل وتحد الموارد.
والعزل يقوم على مساحات الأسماء (Namespaces)، وهي تقسيمات تجعل العملية ترى شبكة وعمليات ونظام ملفات خاصًا بها، فلا ترى ما حولها. أما حدود الموارد فتُضبط بمجموعات التحكم (cgroups)، وهي تحدد مقدار المعالج والذاكرة الذي تستطيع الحاوية استهلاكه. وبهذين الآليتين تبدو الحاوية كأنها جهاز مستقل، مع أن النواة واحدة.
والطبقات تفسر سرعة النقل. فالصورة تُبنى مرة، وتُخزن في سجل (Registry)، ثم تُسحب إلى أي خادم. وإذا كانت بعض الطبقات موجودة مسبقًا، فلا يُنقل منها إلا ما تغير. ولهذا يكون تحديث تطبيق كبير أسرع من نقل جهاز افتراضي كامل. ويبيّن الشكل 1 الطبقات التي تشترك فيها الحاويات مع المضيف.

ما الفرق بين الحاويات والأجهزة الافتراضية؟
الجهاز الافتراضي يشغّل نظام تشغيل كاملًا فوق طبقة محاكاة افتراضية، ويحصل على عتاد وهمي مستقل. أما الحاوية فتشغّل عملية تطبيق فوق نواة المضيف، وتشارك النواة مع غيرها. ويترتب على ذلك فرق في الكثافة والسرعة وقوة العزل.
- الحجم: صورة الحاوية قد تكون عشرات الميغابايتات، بينما يستهلك الجهاز الافتراضي غيغابايتات مع نظام تشغيله.
- الإقلاع: تبدأ الحاوية في ثوانٍ، ويحتاج الجهاز الافتراضي إلى وقت أطول لإقلاع نظام التشغيل.
- العزل: يوفر الجهاز الافتراضي حدًا أقوى لأن النواة منفصلة، بينما تشترك الحاويات في نواة واحدة.
- المرونة: الحاوية أنسب للتطبيقات المقسمة إلى خدمات صغيرة، والجهاز الافتراضي أنسب للأنظمة التي تحتاج نواة خاصة.
وليس المقصود أن الحاويات بديل كامل. فكثير من المؤسسات تشغّل الحاويات داخل أجهزة افتراضية، فتجمع بين كثافة الحاويات وعزل الأجهزة، وتستفيد من أدوات إدارة الأجهزة في الضبط والنسخ الاحتياطي.
لماذا تُعدّ الحاويات قابلة للنقل؟
القابلية للنقل (Portability) تعني أن الصورة نفسها تعمل على حاسوب المطور وعلى خادم الاختبار وعلى بيئة الإنتاج. ويعود ذلك إلى أن التطبيق ومكتباته داخل الصورة، فلا يعتمد على ما هو مثبت خارجها إلا في حدود واضحة. وتحذف الصورة الفروق بين البيئات، وهي سبب شائع للأعطال التي تظهر في الإنتاج دون الاختبار.
غير أن النقل ليس مطلقًا. فالصورة المبنية لمعمارية معالج معينة لا تعمل على معمارية أخرى دون بناء جديد، والحاويات التي تعتمد على ميزات نواة حديثة تحتاج مضيفًا يدعمها. كما أن الاعتماد على خدمات خاصة بمنصة تنسيق واحدة يحدّ من النقل بين المنصات، ولهذا يُفضَّل الالتزام بمعايير مثل مواصفات صورة الحاويات (OCI).
ما حدود العزل في الحاويات؟
العزل في الحاويات أخف من عزل الأجهزة الافتراضية، لأن النواة مشتركة. فثغرة في النواة قد تسمح بعبور الحدود بين الحاويات، وهذه مخاطرة تُدار بالتحديث السريع للنواة، وبعدم تشغيل حاويات غير موثوقة على المضيف نفسه. ويُضاف إلى ذلك ضبط الصلاحيات، لأن تشغيل الحاوية بحساب جذر داخل المضيف يوسع أثر أي خطأ.
ومن الممارسات المفيدة تشغيل الحاوية بمستخدم غير جذري، وجعل نظام ملفاتها للقراءة فقط حيث يمكن، وإسقاط القدرات غير اللازمة، وتقييد الوصول إلى الشبكة. أما الأحمال شديدة الحساسية أو متعددة المستأجرين فيُستحسن عزلها في أجهزة افتراضية منفصلة، أو استخدام تقنيات حاويات ذات عزل أقوى.
أين تُستخدم الحاويات؟
- الخدمات المصغرة: تشغيل كل خدمة في حاوية مستقلة، وتوسيع الخدمة الأكثر طلبًا دون غيرها.
- خطوط التكامل والنشر المستمر: بناء الصورة واختبارها ونشرها آليًا في كل تغيير، وهو أساس عمل فرق التطوير الحديثة.
- المهام المتقطعة: تشغيل مهمة معالجة أو تحويل ملفات عند الطلب، ثم إيقاف الحاوية بعد انتهائها.
- البيئات التعليمية: منح كل متدرب بيئة معزولة قابلة للحذف وإعادة الإنشاء بسرعة.
- الحوسبة الطرفية: نشر تطبيق صغير على أجهزة ذات موارد محدودة، حيث لا يوجد متسع لجهاز افتراضي كامل.
متى لا تناسب الحاويات؟
لا تناسب الحاويات تطبيقًا يحتاج نواة نظام تشغيل مختلفة عن نواة المضيف، أو برنامجًا يتعامل مع عتاد خاص لا يمكن تمريره إليها بسهولة. كما أنها ليست الخيار الأول لقواعد البيانات الكبيرة التي تحتاج تحكمًا دقيقًا في القرص والذاكرة، وإن كانت تعمل فيها بنجاح عند تصميم التخزين والشبكة بعناية.
وتبقى الحاجة إلى فريق يفهم الشبكات والتخزين والمراقبة. فالحاوية لا تلغي تعقيد التشغيل، بل تنقله من إدارة الخوادم إلى إدارة الصور والشبكات والصلاحيات. ومن يبدأ بها دون هذا الأساس يجد نفسه أمام أعطال متكررة لا يفسرها وجود الحاوية.
أسئلة شائعة
ما هي الحاويات ببساطة؟
هي وحدات تشغيل تضم التطبيق ومكتباته وإعداداته، وتعمل معزولة عن بقية النظام مع مشاركة نواة المضيف. وتُبنى من صورة جاهزة، وتبدأ في ثوانٍ، وتعمل بالطريقة نفسها على أي خادم متوافق.
هل الحاوية جهاز افتراضي صغير؟
لا. الحاوية لا تحمل نظام تشغيل كاملًا ولا نواة خاصة بها، بل تشغّل عملية تطبيق فوق نواة المضيف. الجهاز الافتراضي يحاكي عتادًا كاملًا ويشغّل نواة منفصلة، ولهذا يكون عزله أقوى واستهلاكه أكبر.
ما الفرق بين الصورة والحاوية؟
الصورة قالب ثابت للقراءة فقط يضم نظام الملفات والتطبيق، وتُبنى مرة وتُخزن في سجل. أما الحاوية فهي نسخة تعمل من تلك الصورة، ولها حالة قابلة للتغيير، ويمكن إنشاء حاويات عدة من الصورة نفسها.
هل الحاويات آمنة؟
توفّر عزلًا جيدًا للعمليات، لكن العزل أخف من عزل الأجهزة الافتراضية لأن النواة مشتركة. ويُحسّن الأمان بتشغيل الحاوية بمستخدم غير جذري، وتحديث النواة، وتقييد الصلاحيات والشبكة، وفحص الصور قبل النشر.
هل يمكن تشغيل الحاويات على ويندوز؟
نعم، عبر طبقة تشغيل خاصة أو داخل بيئة افتراضية خفيفة. لكن الحاويات المعتمدة على نواة لينكس تحتاج هذه الطبقة، بينما تعمل حاويات ويندوز الأصلية على نواة ويندوز. والتوافق يحدد ما يمكن تشغيله.
مقالات ذات صلة
- ما هو Kubernetes؟
- ما هو DevOps؟
- ما هو التكامل المستمر والتسليم المستمر (CI/CD)؟
- ما هي المراقبة (Observability)؟ السجلات والمقاييس والتتبعات
المصادر
- IBM Think, What are containers? — 9 مايو 2024
- Red Hat, What’s a Linux container? — 10 فبراير 2026
- Kubernetes Documentation, Containers — تحديث 12 أكتوبر 2024
- Docker, What is a container? — تحديث 24 نوفمبر 2025
صورة الغلاف: Jemimus / Wikimedia Commons، بموجب رخصة CC BY.


