ما المقصود بتقنية Docker؟

ألان زيشيك | كاتب أول | 8 ديسمبر 2025

قطع تطوير البرامج شوطًا طويلاً منذ أيام "لكنه يعمل على جهازي!" يرجع ذلك إلى حد كبير إلى استخدام الحاويات، وهو ما يسمح للتطبيق بالعمل محليًا وفي خوادم سحابية متعددة بلا عيوب، والانتقال والتوسع حسب الحاجة عبر بيئات معزولة ومُتسقة.

تُعد Docker منصة برامج مفتوحة المصدر وقياسية تساعد المطورين في إنشاء تطبيقات موضوعة في حاويات واختبارها ونشرها بسرعة. ليس من المستغرب إذ شهدت منصة Docker وخدمات الحاويات المرتبطة بها فيها بعد اعتمادًا واسعًا على مدار السنوات العديدة الماضية. من تقنية Docker باعتبارها تقنية مفتوحة المصدر غير معروفة تقريبًا في 2013، تطورت Docker إلى بيئة تشغيل موحدة مدعومة الآن رسميًا للعديد من المنتجات المؤسسية.

كما قلنا، قطعنا في ذلك شوطًا طويلاً.

ما المقصود بتقنية Docker؟

إن Docker منصة مفتوحة المصدر تتيح للمطورين ومسؤولي الأنظمة حَزم التطبيقات في حاويات. يمكن بعد ذلك دفع هذه الحاويات إلى منصة للنشر، مثل الخوادم أو الخوادم المحلية في السحابة، ثم تنفيذها مباشرةً. يمكنك تشغيل العديد من حاويات Docker، لكل منها تطبيقه الخاص على خادم واحد—ويتم عزل هذه التطبيقات عن بعضها بعضًا، مما يوفر أمان البيانات وموثوقيتها.

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

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

لماذا تختار الحاويات؟

تُستخدم حاويات Linux منذ عام 2008، لكن استغرق ظهور حاويات Docker وقتًا حتى عام 2013 لجعلها مُعتمدة على نطاق واسع. تتمثل إحدى المزايا الكبيرة للحاويات في أنها تحتفظ بكل ما هو مطلوب لتشغيل تطبيق أو خدمة مُحددة، بما في ذلك جميع المكتبات والرسومات مثل الأيقونات أو مكونات واجهة المستخدم وأدوات النظام ووقت التشغيل القابل للتنفيذ. تم تصميم حاوية Docker للتشغيل على نظام تشغيل معين، مثل Linux أو Windows. في معظم الأحيان، يمكن نشر حاويات Docker على أي خادم—أو كمبيوتر محمول أو سطح مكتب—يُشغّل نظام التشغيل هذا، دون الحاجة إلى تغييرات في التكوين.

Docker مقابل Kubernetes

تشارك منظومة Docker في إنشاء الحاويات، ووضع جميع أجزاء التطبيق في تلك الحاويات، ثم تعبئتها للنشر. يكون ذلك جيد لبضع حاويات، لكن ماذا عن المئات أو الآلاف؟ يأتي هنا دور منصة أتمتة Kubernetes.

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

تتمثل الميزة الرئيسة لـ Kubernetes في أنها تساعد في إدارة التعقيد التشغيلي لنشر العديد من الحاويات عبر خوادم متعددة—على هذا النحو، يكون من الضروري لأي نشر واسع النطاق لتكنولوجيا الحاويات، سواء ذلك في السحابة أو محليًا. تنسّق Kubernetes تلقائيًا دورة حياة الحاوية، وتوزِّع الحاويات عبر البنية التحتية للاستضافة. يمكن لـ Kubernetes توسيع نطاق الموارد أو خفضها بسرعة، بحسب الطلب.

النقاط الرئيسة

  • تعبأ الحاويات كل شيء مطلوب لتشغيل تطبيق، بما في ذلك الملفات التنفيذية الثنائية والمكتبات والصور والبيانات الأخرى، بالإضافة إلى تفاصيل تكوين التطبيق.
  • تعد Docker أحد التنسيقات الأكثر شيوعًا لإنشاء التطبيقات الموضوعة في حاويات؛ فهي مصدر مفتوح ومدعوم على نطاق واسع من جميع موفري السحابة الرئيسين.
  • باستخدام Docker، لا توجد حاجة إلى تثبيت تطبيق وتكوينه يدويًا لأن هذه العملية تتم عند تكوين حاوية.
  • مع العزل، يمكن تثبيت العديد من الحاويات على خادم واحد، مما يعزز من قيمة أجهزة الخادم.
  • يمكن للأدوات القياسية في المجال مثل Kubernetes أتمتة نشر مئات أو حتى آلاف التطبيقات الموضوعة في حاويات عبر الشبكة.

شرح إطار Docker

تُعد Docker إطار عمل تطوير تطبيقات مفتوح المصدر تم تصميمه لصالح كل من المطوِّرين ومسؤولي الأنظمة. يسمح بنموذج DevOps، ويكون المطورون فيه مسؤولين عن إدارة التطبيقات المستندة إلى السحابة، بدلاً من الطريقة الأكثر تقليدية التي يكون بنى المطورون فيها التعليمات البرمجية و"ألقوا بها من فوق الحائط" إلى فريق إداري مُنفصل نشر بعد ذلك التطبيق وأداره.

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

بالإضافة إلى ذلك، يمكن للمطورين الاختيار من بين آلاف التطبيقات الموضوعة في حاويات مفتوحة المصدر التي تم إنشاؤها للتشغيل في بيئة Docker. بالنسبة إلى فِرق DevOps، يفسح Docker المجال لسلاسل أدوات التكامل والتطوير المستمرة ويقلل من القيود على بنية النظام وتعقيده. باستخدام الخدمات السحابية لتنسيق الحاويات وDocker مثل Kubernetes، يمكن لأي مطور إنشاء تطبيقات موضوعة في حاويات محليًا ثم وضعها في الإنتاج على الخدمات السحابية.

مزايا استخدام Docker

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

تشمل هذه المزايا ما يلي:

  • الاتساق: يمكن أن ينتج عن ضم التطبيقات وتبعياتها داخل الحاويات سلوك وأداء مُتسقين في التشغيل.
  • إدارة الموارد الفعَّالة: تتيح بنية kernel المشتركة لـ Docker تشغيل حاويات مُتعددة على مضيف واحد بأقل تكلفة إضافية، مما يعزز من استخدام موارد الأجهزة.
  • قابلية التوسع المحسنة: عندما يصبح تطبيق يعمل داخل حاوية مُحملاً بشكل زائد، يمكن لمدير Kubernetes إنشاء مثيل آخر لتلك الحاوية على خادم آخر. يمكن لموازن التحميل بعد ذلك تقسيم العمل بين المثيلات قيد التشغيل.
  • العزل والأمان: توفر الحاويات عزل للعمليات، مما يحسِّن الأمان لكل تطبيق يعمل على خادم.
  • بنية الخدمات الصغيرة: تعد تقنية الوضع في حاويات عامل تمكين رئيس لبنية الخدمات الصغيرة، إذ يتم تقسيم التطبيقات إلى خدمات أصغر ومُستقلة تعمل في حاوياتها الخاصة. يعزز هذا من النمطية وقابلية التوسع والصيانة.
  • قابلية النقل: توفر الحاويات قابلية نقل التطبيقات عبر بيئات مُتنوعة، بدءًا من التطوير حتى الإنتاج، مما يسمح بالتنقل السهل بين إعدادات البنية التحتية المُختلفة.
  • النشر السريع: مع أوقات بدء تشغيل سريعة واستخدام الموارد بكفاءة، يتم إيقاف الحاويات وبدؤها بسهولة، مما يسهِّل التحديثات البسيطة للتعليمات البرمجية للتشغيل وموازنة الحمل الفعَّالة.
  • استخدام الموارد الموثوق به والفعَّال: يمكن تخصيص خادم لحاوية Docker واحدة. مع ذلك، إذا كانت الحاوية لا تحتاج إلى جميع موارد الخادم، فيمكن أيضًا استخدام ذلك الخادم لتشغيل حاويات إضافية، وبالتالي؛ الاستفادة من الأجهزة بالكامل.
  • الإدارة المبسطة: تساعد واجهة Docker اليسيرة ومجموعة الأدوات والأوامر القوية في تبسيط إدارة الحاويات، مما يسهِّل مراقبة التطبيقات وتحديثها وتوسيعها.
  • النشر الأسرع وتكامل CI/CD: قد تستغرق عملية تثبيت البرامج وتكوينها على الخادم دقائق أو ساعات. هل تريد نشر حاوية؟ بِضع ثوان. تعد منصة أتمتة Kubernetes ضرورية لنهج التكامل المستمر/النشر المستمر الحديث المُستخدَم بشكل شائع لتشغيل تطبيقات السحابة الأصلية.

طريقة عمل Docker

المفاهيم الأساسية لـ Docker هي الصور والحاويات. تحتوي صورة Docker على كل المطلوب لتشغيل البرامج: التعليمات البرمجية القابلة للتنفيذ وبرامج التشغيل والأدوات والبرامج النصية والمكتبات وعمليات النشر والمزيد.

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

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

شرح بنية Docker

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

  • يُعد محرك Docker عملية خلفية تعمل على كل خادم، أو سطح مكتب أو محطة عمل، وتستضيف حاويات Docker. يدير جميع التفاعلات مع الحاويات، مثل بدء تشغيلها وإيقافها وتوجيه اتصال الشبكة منها وإليها.
  • يمثل عميل Docker الأداة التي يستخدمها المطورون والمسئولون للتفاعل مع محرك Docker. بمجرد عرض واجهة سطر الأوامر، يقدم عميل Docker الآن واجهة رسومية.
  • تمثل صورة الحاوية قالب للقراءة فحسب يُستخدم لتوفير حاوية. يقرأ محرك Docker صورة الحاوية، التي تخبرها حول طريقة تشغيل الحاوية وتكوينها على الخادم ثم بدء التطبيق داخل تلك الحاوية.
  • تمثل سجلات الحاويات موارد مركزية تخزِّن صور Docker، بالإضافة إلى أوصافها. يرشد عميل Docker أو منصة أتمتة Kubernetes محرك Docker إلى الوصول إلى سجل الحاويات واسترجاع كل صورة حاوية وتشغيلها حسب الحاجة.
  • يمثل تنسيق الحاويات عملية إدارة العديد من الحاويات—مئات أو آلاف، ربما على عشرات أو مئات الخوادم في السحابة أو في مركز بيانات محلي. بالنسبة إلى عمليات النشر الصغيرة نسبيًا، قد تستخدم المؤسسات ميزة Docker Swarm، وهي إمكانية مُضمنة في منصة Docker. بالنسبة إلى عمليات النشر الأكبر عبر المؤسسة، يمثل Kubernetes معيار المجال.
  • تتضمن إدارة الحاويات التنسيق بالإضافة إلى التوسُّع وموازنة الأحمال والتسجيل وتحليل السجل والتحكم في الأمان والوصول.

Docker مقابل الأجهزة الظاهرية

يعد الفَرق بين الأجهزة الظاهرية (VMs) والحاويات التقليدية هائلاً. يمثل الجهاز الظاهري (VM) محاكاة برمجية كاملة لخادم (أو أي كمبيوتر) تتضمن نظام التشغيل وبرامج تشغيل الأجهزة والتطبيقات والبيانات. في موقع الجهاز الظاهري، يعمل مراقب الأجهزة الظاهرية على الخادم وينسِّق الأجهزة الظاهرية، وينفذ نفس الوظيفة التي يقوم بها محرك Docker مع الحاويات.

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

تُستخدم الأجهزة الظاهرية لتشغيل أنظمة تشغيل متعددة وتوفير بيئات تطبيقات آمنة ومعزولة على جهاز مادي واحد. لكن في حين أن الأجهزة الظاهرية توفر مزايا معينة، إلا أنها تقع عليها قيود كما يلي:

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

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

  • الاستخدام الفعَّال للموارد: تشترك الحاويات في نواة المُضيف، مما يؤدي إلى تقليل متطلبات الذاكرة والتخزين مقابل الأجهزة الظاهرية.
  • قابلية التوسع المُحسنة: يُعد توسيع نطاق التطبيقات ذات الحاويات أفقيًا هدفًا أساسًا لـ Docker. يسمح تصميمه بالنشر السريع لمثيلات متعددة بأقل تكلفة إضافية للموارد.
  • أوقات بدء تشغيل سريعة: دون الحاجة إلى تمهيد نظام تشغيل كامل، يمكن بدء الحاويات في غضون ثوانٍ، مما يوفر نشرًا أسرع للتطبيقات وتحسين أداء النظام.
على النقيض من ذلك، تستخدم حاويات Docker نظام التشغيل وبرامج تشغيل الأجهزة الخاصة بالنظام المُضيف، لذا؛ يمكن تخصيص المزيد من موارد معالج الخادم والذاكرة للتطبيق. يحتاج خادم Linux الذي يعمل بـ 20 حاوية Docker إلى تشغيل مثيل واحد فقط من نظام Linux.
مقارنة بين بنية جهاز ظاهري وحاويات Docker.

الوضع في حاويات مقابل النشر التقليدي

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

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

المكونات الرئيسة لـ Docker

تمثل المفاهيم الأساسية لـ Docker هي الصور والحاويات، الموضحة سابقًا. فيما يلي مكونات إضافية لنظام حاويات Docker:

  • محرك Docker: يمثل محرك Docker بيئة التشغيل الأساسية المسؤولة عن إنشاء الحاويات وتشغيلها وإدارتها. يوفر واجهة بين نظام التشغيل المُضيف والحاويات، مما يتيح تخصيص الموارد والأداء الأمثل.
  • Docker Hub: يمثل Docker Hub مستودع قائم على السحابة يوفر مجموعة كبيرة من الصور العامة والخاصة ويعمل باعتبارها منصة للمشاركة والتعاون في المشروعات المتعلقة بـ Docker.
  • Docker Compose:تمثل Docker Compose أداة تبسِّط تعريف التطبيقات متعددة الحاويات وإدارتها. تسمح للمطورين بتحديد وتكوين حاويات متعددة وتبعياتها داخل ملف واحد، يسمى ملف YAML، مما يسِّهل نشر التطبيقات المعقدة وتوسيع نطاقها.
  • Docker Swarm: تمثل Docker Swarm أداة تجميع وتنسيق تنشئ مجموعات من محركات Docker. تسمح بإدارة العديد من الحاويات عبر مضيفين متعددين، مما يوفر ميزات مثل موازنة الحمل واكتشاف الخدمة ونشر التطبيقات القابلة للتوسع. تم استبدال Docker Swarm إلى حد كبير بـ Kubernetes، وهي منصة مفتوحة المصدر لإدارة الحاويات وتنسيقها.
  • واجهة سطر أوامر Docker وواجهة برمجة التطبيقات: توفر واجهة سطر أوامر Docker (CLI) أوامر يسيرة للمطورين والمسؤولين وأدوات برمجة برمجية بسيطة لإدارة الحاويات، بما في ذلك عمليات بدء حالتها وإيقافها ومراقبتها. تسمح واجهة برمجة تطبيقات Docker لأدوات أتمتة وتنسيق أكثر تطورًا، مثل Kubernetes بتنفيذ هذه الوظائف نفسها بسهولة أكبر من واجهة سطر الأوامر.

حالات استخدام شائعة لـ Docker

جعل تعدد الاستخدامات والميزات القوية للوضع في حاويات Docker منها الاختيار المُفضل للمؤسسات عبر مختلف المجالات. فيما يلي الاستخدامات الأكثر شيوعًا لـ Docker، غالبًا بالاقتران مع Kubernetes:

  • البيانات والتحليلات الكبيرة: يجعل الاستخدام الفعَّال للموارد وقابلية التوسع الحاويات خيارًا مثاليًا لتطبيقات البيانات الكبيرة والتحليلات. استخدمت الشركات في القطاعات كثيفة البيانات مثل الإدارة المالية والرعاية الصحية الحاويات في معالجة مجموعات البيانات الكبيرة وتحليلها، وتحسين تخصيص الموارد وتعزيز الأداء.
  • تطبيقات السحابة الأصلية: مع ظهور الحوسبة السحابية، أصبحت الحاويات عامل تمكين رئيس لإنشاء تطبيقات السحابة الأصلية. توفر القدرة على حزم التطبيقات ونشرها باعتبارها حاويات قابلية النقل والمرونة عبر موفري السحابة، مما يقدم مزايا الحوسبة السحابية دون التقيّد بمورِّدين.
  • DevOps والتكامل المستمر: استفادت مؤسسات مثل Spotify وPinterest من الحاويات في تبسيط عمليات DevOps لديها وتمكين التكامل المستمر. توفر الحاويات بيئة مُتسقة وقابلة لإعادة الإنتاج، مما يبسِّط اختبار تغييرات التعليمات البرمجية ونشرها عبر مسار التطوير.
  • البُنى القائمة على الخدمات الصغيرة: تبنت شركات التكنولوجيا الاستهلاكية الرائدة مثل Netflix وUber وAirbnb تكنولوجيا الوضع في حاويات لبناء بنياتها القائمة على الخدمات الصغيرة وإدارتها. كانت قدرة الحاويات على التعامل مع المشاهد المُعقدة للتطبيقات مع خدمات متعددة تعمل بالتوازي أمرًا حيويًا في نجاحها.
  • نشر تطبيقات الويب: تُستخدم الحاويات على نطاق واسع لنشر تطبيقات الويب، مما يوفر أداءً مُتسقًا وموثوقًا. إذ توفر بيئة قابلة للتوسع وآمنة للغاية للمدونات البسيطة ومنصات التجارة الإلكترونية المُعقدة على حد سواء.

بدء استخدام الحاويات

بالنسبة إلى أولئك الجُدد في استخدام Docker والحاويات، إليك دليل شامل للبدء:

  1. تثبيت Docker. تكون الخطوة الأولى في تنزيل Docker وتثبيته على نظام التشغيل المُفضل لديك. توفر Docker حزم تثبيت لـ Windows و macOS وتوزيعات نظام Linux المُختلفة، مما يجعلها متاحة لمجموعة واسعة من المستخدمين.
  2. إنشاء صورة Docker. ابدأ بإنشاء صورة Docker، والتي تعمل باعتبارها مُخطط لحاويتك. يتضمن هذا كتابة Dockerfile، وهو ملف نصي يحدد الخطوات المطلوبة لإنشاء صورتك، بما في ذلك الصورة الرئيسة وتثبيت التبعيات وتكوين التطبيق. يتم إنشاء صورة Docker في طبقات، يمثل كل منها إحدى الخطوات في Dockerfile.
  3. البناء والتشغيل. بمجرد أن تصبح صورة Docker جاهزة، يصبح بإمكانك إنشاء الحاوية الأولى وتشغيلها. توفر واجهة سطر الأوامر من Docker أوامر يسيرة الاستخدام لإدارة الحاويات، مما يسمح لك ببدء حالتها وإيقافها ومراقبتها.
  4. استكشف منظومة Docker. توفر Docker مجموعة غنية من الأدوات والخدمات التي يمكنك استخدامها لتحسين تجربة استخدام الحاويات. توفر Docker Hub، وهو مستودع قائم على السحابة مجموعة كبيرة من الصور الجاهزة للاستخدام ويعمل باعتبارها منصة للمشاركة والتعاون في المشروعات المتعلقة بـ Docker. تُبسِّط Docker Compose من إدارة التطبيقات متعددة الحاويات.

أفضل ممارسات Docker

أثناء استكشافك استخدام Docker داخل مؤسستك، ضع في اعتبارك بعض أفضل الممارسات التي تستخدمها العديد من الشركات التي اعتمدت تطوير السحابة الأصلية:

  • تحسين حجم الصورة وطبقاتها: إن صور Docker الأصغر أسهل في الإنشاء والاختبار والنشر. يمكنك البدء بصورة أساسية صغيرة عن طريق إزالة الملفات غير الضرورية من النظام قبل إنشاء الصورة.
  • إدارة الأمان والأذونات: لا يجب السماح سوى للمستخدمين المعتمدين بالوصول إلى الحاويات، ولا يجب أن تتمكن التطبيقات المعيبة في هذه الحاويات من إتلاف الأمان أو تهديده. يتم تطبيق التوجيه القياسي—لا تشغِّل التطبيقات باعتبارها مستخدم جذر، وتابع التصحيحات، واستخدام ميزات التحكم في الوصول من Docker للحد من امتيازات Linux أو Windows للحاويات.
  • الشبكات الفعَّالة وموازنة الأحمال: تكون الحاويات أكثر كفاءة عندما يتم اقترانها بغير إحكام—أي عندما يمكنك إنشاء الحاويات ونقلها أينما كان ذلك منطقيًا على الشبكة بدلاً من ربطها بموقع ثابت. يمكنك استخدام Docker Network لتحديد بنية شبكة مرنة وأدوات مثل Nginx لتوجيه حركة المرور وموازنة حملها بين الحاويات في نشر واسع النطاق.
  • مراقبة Docker وتسجيلها: على عكس التطبيقات المتجانسة المنشورة على خادم واحد، يمكن أن تكون مراقبة سلامة التطبيقات ذات الحاويات الواسعة النطاق صعبة دون استخدام أدوات الأتمتة. خطط لتمركز السجلات لكل حاوية ثم استخدم أدوات المراقبة لاكتشاف الأخطاء وعرض مقاييس الأداء مرئيًا.

تحسين إستراتيجية الحاوية لأجل النمو

توفر Oracle كل ما يلزم لإنشاء تطبيقات سحابة أصلية ونشرها—بما في ذلك الأدوات والخدمات والأتمتة—حتى تتمكن فِرق التطوير من الإنشاء بسرعة مع تقليل المهام التشغيلية.

تعمل خدمات السحابة الأصلية على البنية التحتية من Oracle Cloud (OCI)، والتي توفر منصة قائمة على المعايير ولها أداء أعلى وتكلفة أقل مقارنةً بموفري الخدمات السحابية الآخرين. من خلال الاستفادة من الخدمات القائمة على معايير مفتوحة المصدر ومفتوحة، مثل Docker وKubernetes، تتيح OCI للمطورين تشغيل التطبيقات على أي بيئة سحابية أو محلية.

شهدت Docker والتقنيات المُرتبطة بها، بما في ذلك Kubernetes اعتمادًا واسعًا ونجاحًا هائلاً على مدار السنوات العديدة الماضية. من تقنية مفتوحة المصدر غير معروفة تقريبًا وتقنية إلى حد ما في عام 2013، تطورت Docker إلى بيئة تشغيل موحدة ثبت أنها مناسبة لأكبر عمليات نشر للمؤسسات.

يُعد Docker مكونًا أساسًا في برامج السحابة الأصلية النمطية اليوم التي توفر قابلية التوسع والمرونة والمرونة وتوفير التكاليف. تعرَّف على طريقة بدء الاستخدام.

الأسئلة الشائعة حول Docker

ما المقصود بالحاويات؟

تجمِّع الحاويات كل التعليمات البرمجية والتبعيات الخاصة بالتطبيق بتنسيق قياسي، مما يسمح بتشغيله بسرعة وموثوقية على معظم الخوادم. إن Docker تنسيق مفتوح المصدر قياسي في المجال للحاويات.

لماذا استخدام Docker على أساليب النشر التقليدية؟

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

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

هل يمكن لـ Docker استبدال الأجهزة الظاهرية بالكامل؟

ينبغي مراعاة أن Docker والأجهزة الظاهرية تقنيات تكميلية. تستخدم الحاويات نظام تشغيل الحاسب المضيف وبرامج تشغيل الأجهزة. يجعلها هذا سريعة وفعَّالة، والخيار الأكثر جاذبية عمومًا في معظم الحالات.

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

كيف تتكامل Docker مع Kubernetes؟

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

ما الدور الذي تلعبه Docker في إستراتيجيات سحابة المؤسسة؟

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