ما هي صورة الحاويات؟

تاريخ النشر 8 أغسطس 2024
أسهم حلقية متشابكة باللون البرتقالي تشكل تدفقًا دائريًا، بتصميم يشبه قطع الأحجية، على خلفية خضراء.
By Phill Powell and Ian Smalley

صور الحاوية، محددة

صور الحاويات هي ملفات ثابتة غير متغيرة تحتوي على تعليمات برمجية قابلة للتنفيذ وتعمل بمعزل عن البنية التحتية لتكنولوجيا المعلومات.

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

تُخزَّن صور الحاويات داخل سجل صور الحاويات (أو سجل الحاويات) الذي يعمل بوصفه نوعًا من أنظمة الملفات. سجلات الحاويات هي مستودعات بيانات (أو مجموعة من المستودعات) تُخزِّن صور الحاويات لأغراض التخزين و/أو الوصول إليها.

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

كيف يتم إنشاء صور الحاوية؟

يتم إنشاء صورة الحاوية من مجموعة مكدّسة من الطبقات، تشمل:

  • الصورة الأساسية (Base image)
  • المكتبات
  • الملفات التنفيذية (Binaries)
  • الاعتماديات (Dependencies)
  • ملفات التكوين

في الصور الجديدة التي تُبنى من الصفر، تبدأ العملية دائمًا من الطبقة السفلية، وهي الصورة الأساسية. تُعد الصورة الأساسية نقطة الانطلاق لمعظم مهام سير العمل الخاصة بتطوير الحاويات. وتتكوّن العديد من الصور الأساسية من توزيعات Linux® الأساسية أو المصغّرة، مثل: Debian، وUbuntu، وRed Hat® Enterprise Linux (RHEL)، وRocky Linux، وAlpine. تُخزَّن ملفات نظام الملفات الخاص بالحاوية داخل الصور الأساسية. وتُتيح عملية إنشاء الصور الأساسية، المعروفة باسم "البناء"، للمطوّرين إنشاء بيئة موحَّدة تُستخدم كأساس لدعم صور الحاويات المُخصصة.

بعد ذلك، تُضاف مجموعة من طبقات نظام الملفات فوق الصورة الأساسية، وتشمل:

  • المكتبات الضرورية: وهي مجموعات قياسية من الخوارزميات وقوالب الأصناف (class templates) تُستخدم لبناء هياكل بيانات شائعة مثل القوائم (lists) والمكدسات (stacks) والطوابير (queues).
  • الملفات التنفيذية الضرورية، وهي ملفات قابلة للتنفيذ مطلوبة لتنفيذ البرامج والأوامر المختلفة. تم تصميم المجلدات الثنائية بحيث يمكن للمستخدمين الوصول السريع إلى الملفات التنفيذية المطلوبة.
  • الاعتماديات المختلفة، والتي تحكم إنشاء والعمليات الحاوية.
  • ملفات التكوين (configs) اللازمة لتشغيل الحاوية المعنية.

إذا كانت صورة الحاوية تعتمد على صورة موجودة مسبقًا، فإن الصورة الأساسية تُعرف باسم الصورة الأصل (Parent Image). أما إذا كانت الصورة أصلية بالكامل، فيُقال إنها لا تمتلك صورة أصل.

IBM DevOps

ما المقصود بعمليات التطوير؟

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

كيف تعمل صور الحاويات؟

تُخزَّن صور الحاويات في سجلات الحاويات، حيث يمكن رفعها (push) إلى السجل أو تنزيلها (pull) إلى نظام آخر.

تخزين الكائنات

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

حاويات الاعتماديات

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

المصادقة

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

بيئة تشغيل الحاويات

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

Docker وKubernetes

هناك مزوّدان رئيسيان يهيمنان على سوق تنظيم الحاويات ويقودان استخدام صور الحاويات:

Docker

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، ترتبط أجهزة كمبيوتر واحدة أو أكثر (سواء كانت أجهزة افتراضية أو خوادم فعلية ضمن مجموعة Kubernetes، حيث يمكن تشغيل أعباء عمل الحاويات بمختلف أحجامها وأنواعها. يضبط خادم Kubernetes Application Programming Interface (API) بيانات كائنات واجهة برمجة التطبيقات، مثل Pods، والخدمات (Services)، ووحدات التحكم في النسخ المتماثل (Replication Controllers) وغيرها. وتتيح واجهات برمجة التطبيقات (APIs) لتطبيقات البرمجيات المختلفة التواصل فيما بينها وتبادل البيانات بتكامل كامل.

ورغم أن Docker وKubernetes يقدّمان خدمات متشابهة، فإن نطاق عمل كلٍّ منهما يختلف. حيث إن Docker هو بيئة تشغيل للحاويات (container runtime)، بينما يُعدّ Kubernetes منصةً متكاملة تستوعب الحاويات من بيئات تشغيل متعددة. ويُعد Docker مجرد إحدى بيئات التشغيل التي يدعمها Kubernetes.

فوائد صور الحاويات

تُعد صور الحاويات عنصرًا أساسيًا في استخدام سجلات الحاويات.

النشر السريع

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

الجاهزية المستمرة

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

الاستخدام الآمن

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

حالات استخدام صور الحاويات

تشمل أبرز الأنشطة التي تعتمد بشكل كبير على صور الحاويات ما يلي:

التطبيقات السحابية الأصلية

تمكّن عمليات النشر القائمة على الحاويات — المدعومة باستخدام صور الحاويات — من تحقيق العزل والمرونة اللازمَين للبنى السحابية الأصلية تتيح الحاويات وصور الحاويات للمستخدمين إنشاء تطبيقات سحابية أصلية قابلة للتوسع وتحسينها.

الخدمات المصغرة

تدعم العديد من سجلات الحاويات (وصور الحاويات المخزنة فيها) مستخدمي الخدمات المصغّرة من خلال تبسيط عملية تحديد موقع خدمة مصغرة محددة داخل مجموعة الحاويات والاتصال بها.

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

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

مزوّدو صور الحاويات الرائدون

سوق مزوّدي صور الحاويات ديناميكي ومتغيّر، ويشهد نشاطًا مستمرًا من دخول وخروج جهات فاعلة في القطاع. لكن المزوّدين التاليين يتمتعون بسمعة راسخة في السوق:

  • Amazon: تُدير Amazon Web Services (AWS) خدمة Amazon Elastic Container Registry (ECR)، والتي تدمج استخدام Amazon Inspector لإدارة فحص الثغرات في الصور. كما تدعم ECR نسخ الصور بين الحسابات والمناطق، ما يُسهّل الوصول إليها.
  • Apache: برنامج خادم ويب مفتوح المصدر متاح مجانًا وتوفره Apache Software Foundation، التي تُقدِّر أن برمجيات Apache تعمل على نحو 30% من جميع خوادم الويب.
  • GitHub: حازت منصة GitHub (المملوكة الآن لشركة مايكروسوفت) على دعم واسع من المطورين، الذين يقدرون الطريقة التي يتيح بها هذا البرنامج المملوك لهم مشاركة التعليمات البرمجية وإدارة التعليمات البرمجية وجهود التعاون.
  • IBM: يتيح IBM Cloud Container Registry للمستخدمين بدء تشغيل سجل خاص بهم بسهولة ورفع الصور الخاصة لاستخدامها مع خدمة IBM Cloud Kubernetes. ويستفيد المستخدمون من خصوصية امتلاك سجل مُدار بالكامل. تُوفّر الخدمة تجربة مجانية أولية، مع نموذج تسعير قائم على "الدفع حسب الاستخدام"، بحيث يدفع المستخدمون فقط مقابل ما يستهلكونه.
  • Microsoft: تستخدم منصة Azure من Microsoft خدمة Azure Container Registry (ACR)، والتي تحتوي على صور Docker وصور مبادرة الحاويات المفتوحة (OCI)، وتدعم عناصر OCI. وتوفر خاصية "السجل المتصل" من ACR (ضمن فئة الخدمة المميزة) إمكانية إنشاء نسخة محلية أو عن بُعد من السجل تتم مزامنتها مع ACR القائم على السحابة. تدعم سجلات ACR الصور الخاصة بكل من أنظمة Windows وLinux.تُعد الكتابة وإدخال أوامر نصية، المعروفة باسم أوامر سطر الأوامر، إحدى طرق التفاعل مع البرامج. تتضمن أنظمة التشغيل التي تستخدم طريقة التفاعل هذه واجهة سطر الأوامر (CLI). ورغم أن غالبية المستخدمين يعتمدون الآن على واجهات المستخدم الرسومية (GUIs)، فإن واجهات أسطر الأوامر (CLI) لا تزال مفضلة لدى من يكتبون البرامج النصية لأغراض الأتمتة. يمنح Azure المستخدمين المرونة لاستخدام Docker CLI لتشغيل عمليات صورة الحاوية الرئيسية.
  • Python: Python هي لغة برمجة عالية المستوى، مفسّرة وموجهة للكائنات، مقدّمة من Python Software Foundation. تجعل هياكل البيانات المدمجة في Python منها مناسبة لأحمال التشغيل التي تتطلب تطوير تطبيقات بسرعة. وتتمثل إحدى مزايا Python الرئيسية لمطوري البرمجيات في سهولة استخدامها، بفضل عدم وجود خطوة تجميع. وهذا يمكّن المبرمجين من تسريع دورة تصحيح الأخطاء، مما يوفر الوقت.
  • Red Hat: تدعم Red Hat البرمجة المعتمدة على Linux منذ تأسيسها عام 1993. ويتيح سجل الحاويات الذي توفره Red Hat، وهو OpenShift Container Platform (OCP)، للمستخدمين الوصول تلقائيًا إلى مستودعات الصور عند الطلب، كما يوفر موقعًا موحدًا لدفع الصور الناتجة عن عمليات بناء التطبيقات.

المؤلفون

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

حلول ذات صلة
IBM® Instana® Observability

استفِد من إمكانات الذكاء الاصطناعي والأتمتة لحل المشكلات بشكل استباقي عبر مجموعة التطبيقات.

استكشف IBM Instana Observability
حلول عمليات التطوير

استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.

استكشف حلول عمليات التطوير
الخدمات الاستشارية ذات الصلة بالتقنيات السحابية

عزّز مرونة أعمالك ونموها من خلال التحديث المستمر لتطبيقاتك على أي منصة، وذلك باستخدام خدمات الاستشارات السحابية التي نقدمها. 

استكشِف الخدمات الاستشارية ذات الصلة بتقنيات السحابة
اتخِذ الخطوة التالية

من اكتشاف المشكلات بشكل استباقي مع IBM Instana إلى الحصول على رؤى في الوقت الفعلي عبر مجموعتك بأكملها، يمكنك الحفاظ على تشغيل التطبيقات السحابية الأصلية بشكل موثوق به.

  1. اكتشِف IBM Instana
  2. استكشف حلول عمليات التطوير