نظرة عامة على هندسة Docker ومكونات Docker [للمبتدئين]

نشرت: 2020-12-31

إذا صادفت مؤخرًا عالم الحاويات ، فربما لا تكون فكرة سيئة أن تفهم العناصر الأساسية التي تعمل معًا لتقديم فوائد النقل بالحاويات. لكن قبل ذلك ، هناك سؤال قد تطرحه. ما المشكلة التي تحلها الحاويات؟

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

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

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

وراء هذه الأداة الرائعة ، يجب أن تكون هناك بنية مدروسة جيدًا. قبل معرفة مكونات بنية Docker ، دعنا نفهم حاويات Docker وكيف تتفوق على الأجهزة الافتراضية.

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

حاويات Docker

Docker هو مشروع مفتوح المصدر يوفر القدرة على إنشاء التطبيقات وحزمها وتشغيلها في بيئات معزولة ومحتواة بشكل فضفاض تسمى الحاويات.

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

أسباب اعتماد حاويات الرصيف على نطاق واسع تشمل

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

قبل التعمق في الموضوع ، يجب علينا التفريق بين ممارسات المحاكاة الافتراضية التقليدية والجيل الجديد من الحاوية.

الآلات الافتراضية مقابل حاويات الرصيف

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

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

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

مصدر الصورة

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

محرك Docker

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

الخادم (الشيطان)

Docker daemon هي عملية مستمرة تعمل في الخلفية وتدير جميع كائنات Docker. يستمع إلى طلبات Docker API التي يقدمها العميل ويعالجها باستمرار.

بقية API

إنها الواجهة التي يستخدمها عملاء Docker للتفاعل مع Docker daemon. يمكن للعملاء التحدث إلى البرنامج الخفي من خلال API ويمكنهم تقديم الإرشادات إليه.

عميل

عميل Docker هو واجهة سطر أوامر (CLI) يمكنها التفاعل مع البرنامج الخفي. يبسط العملية الكاملة لإدارة الحاويات.

مصدر الصورة

يتحدث عميل Docker (الذي يمكن أن يكون عميل HTTP مثل CLI) إلى البرنامج الخفي ، الذي يؤدي المهمة الثقيلة المتمثلة في إنشاء الحاويات وتشغيلها ومشاركتها. يمكن للعميل والبرنامج الخفي إما العمل على نفس الجهاز أو توصيل عميل إلى برنامج خفي بعيد. يتواصل العميل والبرنامج الخفي مع بعضهما البعض باستخدام Rest API عبر مآخذ التوصيل أو واجهة الشبكة. يساعد عميل Docker المستخدمين في إدارة كائنات Docker مثل الحاويات والصور والأحجام وما إلى ذلك. تعرف على المزيد حول مشاريع Docker

سجل في دورات تطوير البرمجيات من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

المكونات المعمارية

كما تمت مناقشته سابقًا ، يستخدم Docker بنية خادم العميل ، حيث يتحدث العميل إلى البرنامج الخفي عبر Rest API. تتكون بنية Docker من عدة مكونات ، كما هو موضح أدناه.

مصدر الصورة

الشيطان

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

عميل

يمكن لمستخدمي Docker التواصل مع البرنامج الخفي باستخدام Docker Client. ينفذ المستخدمون أوامر مثل "Docker run…" باستخدام عميل مثل CLI والذي يقوم بعد ذلك بإعادة توجيه هذه الأوامر إلى Docker (البرنامج الخفي) ، وتنفيذها في النهاية. يتواصل عميل Docker مع العديد من الشياطين.

السجلات

يقوم بتخزين صور Docker ويمكن أن تكون عامة أو خاصة. تم تكوين Docker للبحث عن الصور بشكل افتراضي على Docker Hub. عندما يصدر العميل أمر سحب أو تشغيل ، يتم سحب الصور من المستودعات.

كائنات عامل الميناء

عند العمل مع Docker ، نتفاعل مع العديد من الكائنات مثل الحاويات والصور والأحجام والشبكات وما إلى ذلك.

بعض هذه الأشياء

الصور

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

حاويات

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

شبكة الاتصال

تسمح Docker Networks للحاويات المعزولة الموجودة على نفس الشبكة بالاتصال ومشاركة الموارد. تتضمن بعض الشبكات التي يوفرها Docker ، الجسر ، والمضيف ، والتراكب ، و Macvlan ، وما إلى ذلك.

تخزين

يتيح لك Docker تخزين البيانات داخل طبقة الحاوية القابلة للكتابة بمساعدة السائقين. يتيح Docker أربعة خيارات للتخزين الدائم - وحدات تخزين Docker ، وحاويات التخزين ، وحوامل الدليل ، ومكونات التخزين.

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

خاتمة

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

نظرًا للمجموعة الواسعة من الفوائد التي توفرها الحاويات مثل كفاءة الموارد ، وقابلية التوسع ، وما إلى ذلك ، فإنها تؤمن موقعها على قمة السطح.

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

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

تعلم هندسة Docker Architecture مع upGrad

ابدأ رحلة بناء التطبيق بوتيرة متسارعة مع upGrad.

upGrad التعليم الجندي. تقدم المحدودة دورة تدريبية حصرية في تخصص تطوير البرمجيات في DevOps ، مما يجعل الطامحين مستعدين للانخراط في عمالقة تكنولوجيا المعلومات الكبار.

يسلط الضوء على الدورة

برنامج PG التنفيذي التابع لشركة upGrad في تخصص تطوير البرمجيات في البيانات الضخمة عبارة عن دورة تدريبية مصممة بعناية عبر الإنترنت مقسمة إلى 12 شهرًا.

في هذا المنهج ، ستفعل

  • احصل على وصول حصري إلى محتوى Data Science و Machine Learning
  • العمل على المشاريع الحية والتعيينات
  • احصل على دعم وظيفي 360 درجة
  • تعلم عشر لغات وأدوات برمجة
  • احصل على إرشاد مخصص للطلاب

اجعل تطوير تطبيقات DevOps جاهزًا مع upGrad.

لماذا الانتظار

سجل اليوم!

استعد لمهنة المستقبل

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات