12 فكرة مثيرة للاهتمام لمشروع Docker للمبتدئين [2022]

نشرت: 2021-01-07

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

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

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

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

تعلم كيفية إنشاء تطبيقات مثل Swiggy و Quora و IMDB والمزيد

في هذا المنشور ، سنسلط الضوء على بعض من أفضل مشاريع Docker التي يجب أن يعرفها كل مطور طموح!

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

أفضل أفكار مشروع Docker

1. RancherVM

أي شخص يستخدم Docker ربما يعرف ما هو Rancher. إنه مورد حاويات كخدمة يتضمن مجموعة من بعض أطر عمل تنظيم وجدولة الحاويات الأكثر استخدامًا - Docker Swarm و Kubernetes و Mesos . يعد RancherVM أحد مشاريع Rancher الأقل شهرة والتي تتيح لك تشغيل جهاز افتراضي داخل حاوية Docker. وهي مجهزة بواجهة مستخدم ويب لإدارة المفاتيح العامة وعقد الحساب وأجهزة VM والوصول إلى وحدات تحكم VNC من مستعرض ويب.

باستخدام RancherVM ، يمكنك إنشاء أجهزة افتراضية تعمل داخل حاضنات Kubernetes ، والمعروفة أيضًا باسم VM Pods. يتضمن كل جراب VM حاوية تقوم بتشغيل مثيل آلة افتراضية. في الوقت الحالي ، يدعم RancherVM صور KVM فقط. لذلك ، يمكنك حزم أي صورة KVM كصورة Docker ، وتوزيعها باستخدام أي سجل Docker (على سبيل المثال ، DockerHub) ، وتشغيلها على RancherVM.

علاوة على ذلك ، تقوم RancherVM بتوسيع Kubernetes API باستخدام تعريفات الموارد المخصصة (CRDs). يمكنك تحديد مواصفات VirtualMachine CRD التي تحدد الصورة الأساسية ومقدار موارد الحوسبة وأزواج المفاتيح المصرح لها ببدء جلسة SSH. بعد ذلك ، ستُنشئ وحدة تحكم Kubernetes pods (أجهزة افتراضية) وفقًا للمواصفات التي قدمتها وتعرضها في حالة VirtualMachine CRD.

معرفة المزيد: أهم 10 مشاريع DevOps مثيرة للمبتدئين [2020]

2. Dockercraft

في نوفمبر 2015 ، أصدرت Microsoft Dockercraft أمام أعين الجمهور. تم إطلاقه كمصدر مفتوح على GitHub ، وهو مصمم بشكل صريح للسماح للمطورين بإدارة حاويات Docker الخاصة بهم في Minecraft ، وهي لعبة مشهورة اشترتها Microsoft مقابل 2.5 مليار دولار أمريكي !

وفقًا لـ GitHub ، Dockercraft هو "عميل Minecraft Docker بسيط ، لتصور وإدارة حاويات Docker" في بيئة Minecraft ثلاثية الأبعاد. إنه ليس مدير Docker معقدًا تم تنفيذه في Minecraft ، ولكنه طريقة مبسطة لتصور وتقليب المفاتيح في حاويات Docker.

من المهم أن تتذكر أنه يجب أن يكون لديك الإصدار الكامل من Minecraft على جهاز الكمبيوتر الخاص بك لاستخدام Dockercraft. إذا كان لديك بالفعل ، فيمكنك تنزيل Dockercraft من Github . بعد الانتهاء من الإعداد ، يجب عليك تشغيل حاوية Dockercraft والانضمام إلى خادم Minecraft مخصص - Cuberite.

3. النبيذ

أكبر عيب في Docker هو أن تطبيقات Dockerized ليست مشتركة بين الأنظمة الأساسية ، مما يعني أنه لا يمكنك تشغيل تطبيق Docker Windows أصليًا على Linux. لحل هذه المشكلة ، تم إنشاء Wine . تم تطوير Wine on Docker لتمكين تطبيقات Windows من العمل على نظام التشغيل Linux تمامًا كما سيتم تشغيل تطبيق محلي من أي مكان في العالم. في Docker ، يُعرف باسم Wine ، بينما في GitHub ، نسميه Docker-Wine.

يستخدم Wine طبقة توافق Wine لدعم تطبيقات Windows على Linux. نظرًا لأن Wine يأتي مع برامج تشغيل فيديو ديناميكي و VirtualGL مع دعم محلي وعن بعد ، يجب أن يعمل بشكل جيد مع بطاقات Nvidia خارج الصندوق وبرامج تشغيل Nvidia وحتى البطاقات الأخرى التي تستخدم برامج تشغيل Mesa. يمكنك تكوين Wine للتكيف التلقائي مع أي برامج تشغيل قد تكون قمت بتثبيتها ، بشرط أن تكون أحدث برامج التشغيل لفرعك.

4. Docker-Mon

في الوقت الحالي ، لا يوجد سوى عدد قليل من خدمات المراقبة لصور Docker ، على سبيل المثال ، حوض بناء السفن . ومن الحقائق الراسخة أن المطورين / المبرمجين يحبون الأدوات التي تتيح لهم الوصول إلى جميع المتطلبات الأساسية داخل الصدفة. Docker-Mon هو أحد أدوات مراقبة Docker لوحدة التحكم. يعتمد Docker-mon على إطار عمل لوحة القيادة المتمركز حول الصدفة.

لا يزال هذا المشروع قيد التنفيذ ، وهو يعتمد على ميزة إحصائيات عامل الإرساء التي لم يتم إطلاقها بعد. لذلك ، لاستخدام Docker-Mon ، ستحتاج إما إلى بنية رئيسية أو الإصدار v1.5.0 القادم (يمكنك التحقق من بدء التشغيل لـ v1.5.0-rc1 هنا ).

5. ركاب عامل ميناء

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

Passenger-Docker عبارة عن مجموعة من صور Docker المصممة لتكون بمثابة قواعد لصور تطبيقات الويب Ruby و Python و Node.js و Meteor. الحفاظ على الشعار الأساسي لـ Phusion Passenger ، يسعى مشروع Passenger-Docker إلى تبسيط وتسريع عملية إنشاء صور Docker لتطبيقات الويب.

6. KubeVirt

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

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

قراءة المزيد: شبكة Kubernetes: دليل كامل لفهم نموذج الشبكة

7. جدول

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

يتكون Docket من ثلاثة مكونات رئيسية -

  • Docket Registry: هي خدمة REST تعمل كسجل. يمكنه تلقي كرات القطران لصور Docker من العميل ، وتخزين البيانات الوصفية في قاعدة بيانات ، وإنشاء السيول منها وكذلك زرعها.
  • عميل Docket: هو الواجهة التي يتفاعل معها المستخدم النهائي. يتيح لك عرض الصور المتاحة في السجل ، ودفع صورة إلى السجل ، وسحب صورة من السجل (يؤدي ذلك إلى نشر BitTorrent).
  • BitTorrent Tracker: على الرغم من أن Docket يحتوي على ميزة BYOT (إحضار المتتبع الخاص بك) ، فإننا نوصي بتثبيت opentracker لتتبع BitTorrent.

8. أداة ترحيل الحاويات (CMT)

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

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

9. dockerfile_lint

تعتبر Linters مكونًا مهمًا في تطوير سلسلة أدوات من الأمام. يتم استخدامها على نطاق واسع من قبل مطوري JavaScript وتكون مفيدة بشكل خاص عندما يعمل العديد من المطورين على قاعدة بيانات مشتركة. dockerfile_lint هو لينتر قائم على القواعد لملفات Dockerfiles .

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

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

10. Dockermix

Dockermix هي أداة سطر أوامر تستخدم لتطوير وإدارة بيئات Docker متعددة الحاويات. في هذا المشروع ، يتم تحديد مجموعات الحاويات بتنسيق YAML الذي يحاكي الخيارات المتاحة في Docker API. كان الهدف من إنشاء Dockermix هو السماح للمطورين بإطلاق بيئات معقدة متعددة العقد وتنظيمها ونشرها بسهولة للاختبار والتطوير.

تمت إعادة تسمية مشروع Dockermix الآن باسم Maestro مع انتقال تطويره إلى مؤسسة Toscanini. للوصول إلى شفرة المصدر الحالية ، يمكنك التحقق من مشروع Maestro .

11. Docker Cookbook

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

لاستخدام Docker Cookbook ، يجب أن يكون لديك Chef v12.15 أو أحدث مثبتًا في جهازك. يقدم Cookbook دعمًا لأنظمة أساسية متعددة ، بما في ذلك Amazon Linux و Fedora و CentOS 7 و Debian 8/9 و Ubuntu 14.04 / 16.04. أيضًا ، يمكنه إعداد مستودعات حزم Docker المنبثقة تلقائيًا.

12. Dokku

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

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

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

تغليف

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

إذا كنت مهتمًا بمعرفة المزيد حول البيانات الضخمة ، فتحقق من برنامج upGrad & IIIT-B Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، وأكثر من 9 مشاريع ومهام ، IIIT -ب حالة الخريجين ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

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

تقدم الآن لبرنامج Executive PG في Full Stack Development