تضع الحاوية (Container) التطبيق وكل ما يحتاج إليه للتشغيل، كالمكتبات والإعدادات والإصدار الصحيح من لغة البرمجة، في حزمة مستقلة. ويمكن تشغيل هذه الحزمة على حاسوب المبرمج وخادم الاختبار والخادم الرئيسي بنتيجة واحدة.
المشكلة التي تحلها#
سمعتَ العبارة الشهيرة «لكنه كان يعمل على جهازي!». وسببها غالبًا اختلاف إصدارات البرامج بين بيئتين. والحاوية ترسل البيئة مع التطبيق فتزيل هذا الاختلاف.
مثال#
يحتاج مشروع الويب لديك إلى إصدار محدد من PHP وقاعدة بيانات وRedis. وبالحاويات تعرّف الثلاثة في ملف واحد وأمر واحد يشغّلها كلها؛ ويستطيع زميل جديد أن يبدأ دون ساعات من التثبيت اليدوي.
الفرق عن الآلة الافتراضية#
- تشارك الحاوية نواة نظام التشغيل المضيف، فتبدأ في ثوانٍ وحجمها صغير.
- للآلة الافتراضية نظام تشغيل كامل، وهي أثقل لكنها توفر عزلًا أقوى.
الأدوات#
أشهر أداة لبناء الحاويات وتشغيلها هي Docker. والصورة (Image) قالب للقراءة فقط، والحاوية نسخة منه قيد التشغيل.
ملاحظات#
الحاويات عادةً عديمة الحالة (Stateless)، لذا احفظ البيانات الدائمة في Volume أو قاعدة بيانات خارجية. وحين يكثر عدد الحاويات يُلجأ إلى التنسيق (Orchestration). وخذ الصور الجاهزة من مصادر موثوقة فقط، لأن الصورة الملوثة قد تشكّل خطرًا أمنيًا.