صور الحاويات هي ملفات ثابتة غير متغيرة تحتوي على تعليمات برمجية قابلة للتنفيذ وتعمل بمعزل عن البنية التحتية لتكنولوجيا المعلومات.
تُجمّع صورة الحاوية جميع المكوّنات اللازمة لإنشاء حاوية داخل نظام التشغيل، وتُبنى من طبقات مختلفة مكدّسة فوق بعضها البعض. وتُعد صور الحاويات ثابتة (immutable)، وتعمل بمثابة قوالب templates لتشغيل الحاويات.
يتم تخزين صور الحاويات داخل سجل صور الحاويات (أو سجل الحاويات) الذي يعمل كنوع من نظام الملفات. سجل الحاويات هو مستودع بيانات (أو مجموعات من المستودعات) يُخزِّن صور الحاويات بعرض التخزين والوصول إليها.
وتُعد قدرة سجل الحاويات على التكامل السلس مع أنظمة/منصات تنظيم الحاويات، مثل Kubernetes وDocker، من أبرز مزاياه. كما يمكن استخدام سجلات الحاويات ضمن منهجيات عمليات التطوير أثناء تطوير التطبيقات المعتمدة على الحاويات، مما يتيح تكاملًا سلسًا في مهام سير العمل.
يتم إنشاء صورة الحاوية من مجموعة مكدّسة من الطبقات، تشمل:
في الصور الجديدة التي تُبنى من الصفر، تبدأ العملية دائمًا من الطبقة السفلية، وهي الصورة الأساسية. تُعد الصورة الأساسية نقطة الانطلاق لمعظم مهام سير العمل الخاصة بتطوير الحاويات. وتتكوّن العديد من الصور الأساسية من توزيعات Linux الأساسية أو المصغّرة، مثل: Debian، وUbuntu، وRed Hat Enterprise Linux (RHEL)، وRocky Linux، وAlpine. تُخزَّن ملفات نظام الملفات الخاص بالحاوية داخل الصور الأساسية. وتُتيح عملية إنشاء الصور الأساسية، المعروفة باسم "البناء"، للمطوّرين إنشاء بيئة موحَّدة تُستخدم كأساس لدعم صور الحاويات المُخصصة.
بعد ذلك، تُضاف مجموعة من طبقات نظام الملفات فوق الصورة الأساسية، وتشمل:
إذا كانت صورة الحاوية تعتمد على صورة موجودة مسبقًا، فإن الصورة الأساسية تُعرف باسم الصورة الأصل (Parent Image). أما إذا كانت الصورة أصلية بالكامل، فيُقال إنها لا تمتلك صورة أصل.
تُخزَّن صور الحاويات في سجلات الحاويات، حيث يمكن رفعها (push) إلى السجل أو تنزيلها (pull) إلى نظام آخر.
تستخدم سجلات الحاويات التخزين القائم على الكائنات object storage لتخزين البيانات الوصفية المتعلقة بصور الحاويات. يوفر هذا النظام وسيلة فعّالة لنقل البيانات الوصفية (metadata)، ولكنه يبقى محدودًا. فعلى سبيل المثال، عندما تتعلق البيانات بعدة صور، توجد حدود لعدد العلامات (tags) التي يمكن عرضها.
توفّر حاويات الاعتماديات طريقة أخرى لتخزين البيانات. تتيح هذه الحاويات إدارة الاعتماديات وتسجيلها وحلها داخل التطبيق. وتصف الاعتماديات الحالات التي يتعين فيها حدوث كائن أو عملية معينة قبل أن يتمكن كائن آخر من العمل كما هو مطلوب.
نظرًا للحاجة الملحة إلى الأمن الإلكتروني، تُعد مصادقة الأفراد المصرح لهم بالوصول إلى المستودعات أمرًا ضروريًا. تعتمد المصادقة على سلسلة من أذونات الوصول المرتبطة بسجل الحاويات المعني. حيث تُحدد الأذونات من هم المخوّلون باستخدام موارد الحوسبة المرتبطة بهذا السجل.
يعتبر مفهوم بيئة التشغيل في غاية الأهمية. بيئة تشغيل الحاويات هي البرمجيات التي تتيح تشغيل الحاويات داخل النظام المضيف. تستخدم بيئة تشغيل الحاويات سلسلة من الخطوات لتنفيذ إنشاء الحاويات. تمر عملية إنشاء الحاويات بسلسلة من الخطوات تشمل بناء البيئة وتنشيطها استنادًا إلى صورة الحاوية التي تحتوي على التطبيق والاعتماديات.
هناك مزوّدان رئيسيان يهيمنان على سوق تنظيم الحاويات ويقودان استخدام صور الحاويات:
Docker هو نظام لتنظيم الحاويات يُبسط إنشاء التطبيقات ونشرها وتشغيلها. يُنظر إلى Docker كوسيلة سهلة لبناء حاويات خفيفة الوزن ومكتفية ذاتيًا يمكن تشغيلها على أي منصة، بغض النظر عن البنية التحتية. وتوفّر حاويات Docker قابلية نقل فائقة، إذ يمكن نقلها من جهاز إلى آخر بسهولة. كما يُوفّر Docker وسيلة قياسية لنشر الخدمات المصغّرة، من خلال السماح للمستخدم بتجميعها في صور حاوية.
يحتوي Docker على مصدر للصور يُعرف باسم DockerHub، والذي يُوفّر وصولًا مجانيًا لأكثر من 100,000 صورة وملفات Docker أخرى يشاركها المستخدمون، وبائعو البرمجيات، والمشاريع مفتوحة المصدر. يتوفر أيضًا إصدار مدفوع من خدمة سجل حاويات Docker للاستخدام الخاص. تعتمد صور Docker على واجهة سطر أوامر Docker (Docker CLI)، والتي تتيح تنفيذ العمليات الأساسية مثل تسجيل الدخول (login) ورفع الصور (push) وتحميلها (pull). يُنشئ المستخدمون صور Docker باستخدام ميزة Docker Build في Docker Engine، والتي تتيح تجميع التعليمات البرمجية المصدرية. يمكن تكوين Docker باستخدام ملفات إعداد بصيغة JSON (JavaScript Object Notation)، وهي الصيغة المفضّلة لأنها تجمع جميع الإعدادات في مكان واحد.
Kubernetes هو منصة مفتوحة المصدر لتنظيم الحاويات. يستخدم Kubernetes لأتمتة العديد من عمليات البرامج، مثل الإدارة والنشر والتوسع. ضمن خدمة Kubernetes، يتم ربط جهاز كمبيوتر أو أكثر — سواء كانت أجهزة افتراضية أو خوادم بدون نظام تشغيل — ضمن عنقود Kubernetes يمكن تشغيل أحمال الحاويات عليه بمختلف الأحجام والأنواع. يتولى خادم واجهة برمجة التطبيقات (API) في Kubernetes تهيئة البيانات الخاصة بكائنات واجهة برمجة التطبيقات، مثل الحجيرات، والخدمات، ووحدات التحكم في التكرار، وغيرها. تُتيح واجهات برمجة التطبيقات (APIs) للتطبيقات البرمجية المختلفة أن تتواصل وتتبادل البيانات فيما بينها بانسجامٍ كامل.
ورغم أن Docker وKubernetes يقدّمان خدمات متشابهة، فإن نطاق عمل كلٍّ منهما يختلف. حيث إن Docker هو بيئة تشغيل للحاويات (container runtime)، بينما يُعدّ Kubernetes منصةً متكاملة تستوعب الحاويات من بيئات تشغيل متعددة. ويُعد Docker مجرد إحدى بيئات التشغيل التي يدعمها Kubernetes.
تُعد صور الحاويات عنصرًا أساسيًا في استخدام سجلات الحاويات.
وقد صُممت صور الحاويات لتضم كل ما يلزم لتشغيل الحاوية. وبمجرد إنشاء هذه الصور، لا يحتاج النظام سوى إلى أوامر بسيطة من نظام الكمبيوتر لتشغيل الحاويات. هذا يجعل صور الحاوية مثالية للتنفيذ السريع.
تتغيّر أولويات الأعمال بشكل مفاجئ في كثير من الأحيان. لذا، فإن إنشاء صور الحاويات مسبقًا يمكّن المؤسسات من توقّع احتياجاتها المحتملة ثم اختيار الحاويات الأنسب عند الحاجة. تُتيح هذه المرونة للمؤسسات التكيّف سريعًا مع تغيّر الظروف.
يتم دعم أمان صور الحاويات من خلال عناصر التحكم في الوصول التي تفرضها سجلات الحاويات وتشمل هذه العناصر بروتوكولات المصادقة التي تمنع الوصول غير المصرّح به إلى صور الحاوية. وبات يُستخدم التشفير بشكل شائع الآن لتأمين الصور وحمايتها من الثغرات الأمنية.
تشمل أبرز الأنشطة التي تعتمد بشكل كبير على صور الحاويات ما يلي:
تمكّن عمليات النشر القائمة على الحاويات — المدعومة باستخدام صور الحاويات — من تحقيق العزل والمرونة اللازمَين للبنى السحابية الأصلية تتيح الحاويات وصور الحاويات للمستخدمين إنشاء تطبيقات سحابية أصلية قابلة للتوسع وتحسينها.
تُسهّل العديد من سجلات الحاويات، وما تتضمنه من صور، على المستخدمين العثور على الخدمات المصغّرة المطلوبة والاتصال بها داخل مجموعة الحاويات.
الأجهزة الافتراضية (VMs) هي أنظمة كمبيوتر تستخدم برامج على جهاز كمبيوتر لمحاكاة وظائف جهاز كمبيوتر آخر. تتمتع الأجهزة الافتراضية بعلاقة فريدة مع صور الحاويات. غالبًا ما يستخدم المستخدمون الأجهزة الافتراضية كنظام تشغيل مضيف للحاويات بدلاً من تشغيل الحاويات مباشرةً على الأجهزة، خصوصًا عند الحاجة إلى تشغيل الحاويات في البيئة السحابية.
سوق مزوّدي صور الحاويات ديناميكي ومتغيّر، ويشهد نشاطًا مستمرًا من دخول وخروج جهات فاعلة في القطاع. لكن المزوّدين التاليين يتمتعون بسمعة راسخة في السوق:
Red Hat OpenShift on IBM Cloud هي منصة حاويات OpenShift (OCP) المُدارة بالكامل.
تنفذ حلول الحاويات أعباء عمل الحاويات وتوسع نطاقها مع ميزات الأمان والابتكار مفتوحة المصدر والنشر السريع.
أطلق العنان للقدرات الجديدة وحفِّز مرونة الأعمال من خلال خدمات الاستشارات السحابية من IBM. اكتشف كيفية المشاركة في إنشاء الحلول وتسريع التحول الرقمي وتحسين الأداء من خلال إستراتيجيات السحابة الهجينة والشراكات مع الخبراء.