هندسة Docker Architecture: ما سبب أهميتها؟

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

يعتقد الكثير منا أن Docker جزء لا يتجزأ من . لذلك وراء هذه الأداة الرائعة ، يجب أن يكون هناك بنية مذهلة. في هذه المدونة ، سأغطي كل ما يجب أن تعرفه عن هندسة Docker. هذه هي النقاط التي سأناقشها هنا:

  1. الافتراضية التقليدية مقابل عامل ميناء
  2. سير عمل Docker
  3. العمارة Docker

التقليدية الافتراضية مقابل عامل ميناء

ما هو الجهاز الظاهري (VM)؟

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





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

ما هو Docker؟

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



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

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

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



vm vs docker - هندسة عامل ميناء - edureka

سير عمل Docker

أولاً ، دعونا نلقي نظرة على Docker Engine ومكوناته حتى يكون لدينا فكرة أساسية عن كيفية عمل النظام. يتيح لك Docker Engine تطوير التطبيقات وتجميعها وشحنها وتشغيلها باستخدام المكونات التالية:

  1. Docker Daemon : عملية خلفية دائمة تدير صور Docker والحاويات والشبكات ووحدات التخزين. يستمع Docker daemon باستمرار لطلبات Docker API ويقوم بمعالجتها.

  2. Docker Engine REST API : يتم استخدام API بواسطة التطبيقات للتفاعل مع Docker daemon. يمكن الوصول إليه بواسطة عميل HTTP.

  3. Docker CLI : عميل واجهة سطر أوامر للتفاعل مع Docker daemon. إنه يبسط بشكل كبير كيفية إدارة حالات الحاوية وهو أحد الأسباب الرئيسية التي تجعل المطورين يحبون استخدام Docker.

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

العمارة Docker

تستخدم بنية Docker نموذج خادم العميل وتتكون من Docker’s Client ، ومضيف Docker ، ومكونات الشبكة والتخزين ، و Docker Registry / Hub. دعونا نلقي نظرة على كل من هذه ببعض التفاصيل.

عميل Docker's

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

مضيف عامل ميناء

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

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

1. الصور

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

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

2. الحاويات

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

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

كيفية الإدلاء بمضاعفة كثافة العمليات

3. الشبكات

شبكة Docker عبارة عن ممر تتواصل من خلاله كل الحاوية المعزولة. يوجد بشكل أساسي خمسة برامج تشغيل للشبكة في عامل الإرساء:

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

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

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

    4. لا شيء : هذا السائق يعطل كل الشبكات.

    5. ماكفلان : يقوم برنامج التشغيل هذا بتعيين عنوان mac للحاويات لجعلها تبدو وكأنها أجهزة مادية. يقوم بتوجيه حركة المرور بين الحاويات من خلال عناوين mac الخاصة بهم. تستخدم هذه الشبكة عندما تريد أن تبدو الحاويات وكأنها جهاز مادي ، على سبيل المثال ، أثناء ترحيل إعداد VM.

4. التخزين

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

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

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

    3. يتصاعد الدليل : خيار آخر هو تحميل الدليل المحلي للمضيف في الحاوية. في الحالات المذكورة سابقًا ، يجب أن تكون وحدات التخزين داخل مجلد Docker volumes ، بينما عندما يتعلق الأمر بـ Directory Mounts ، يمكن استخدام أي دليل على الجهاز المضيف كمصدر لوحدة التخزين.

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

سجل Docker's Registry

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

الآن بعد أن فهمت هندسة Docker ، تحقق من هذا من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على فهم ما هو DevOps واكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و Ansible و Chef و Saltstack و GIT لأتمتة خطوات متعددة في SDLC.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في 'Docker Architecture' وسنعاود الاتصال بك