العودة إلى المدونة

تحويل تطبيق Python إلى حاوية باستخدام Docker

تحويل تطبيق Python إلى حاوية باستخدام Docker

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

المتطلبات الأساسية

لتنفيذ الخطوات الموضحة في هذا الدليل، ستحتاج إلى المكونات التالية:

حاويات Docker

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

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

لحل هذه المشكلات، يمكننا استخدام حاويات Docker لعزل البرامج على مستوى البرمجيات (sandboxing):

  • سيكون للتطبيقات داخل الحاوية وصول محدود إلى الملفات.

  • لا يمكن للتطبيقات الموجودة داخل الحاويات رؤية العمليات الأخرى التي تعمل في النظام.

  • يمكن تخصيص كمية محددة من موارد الأجهزة للحاوية.

  • لا يتم كشف منافذ الشبكة الخاصة بالحاوية للخارج.

  • حزم متسقة لأي شيء تقريبًا عبر البيئات المحلية وبيئات الإنتاج.

للتوضيح، سنقوم ببناء خادم Python بسيط داخل حاوية Docker، وتحويل الحاوية إلى صورة (image)، ونشر الصورة داخل بيئة إنتاج وهمية.

الخطوة 1 – تكوين نظام الملفات

لاستضافة المشروع، أولاً، سنقوم بإنشاء دليل مخصص:

داخل الدليل، قم بإنشاء دليل فرعي src لتخزين الكود الخاص بنا:

الخطوة 2 – بناء خادم Python

في هذه الخطوة، سنقوم بإنشاء خادم HTTP بسيط في Python. قم بإنشاء الملف server.py:

افتحه في محرر نصوص:

أدخل كود Python التالي:

هنا،

  • نحن نستخدم الفئة HTTPServer ونطلب معالجًا من مكتبة Python القياسية، مما يحافظ على بساطة البرنامج.

  • تبدأ الدالة run مثيلًا لـ HTTPserver.

  • كما توضح وسيطات server_address، فإن الخادم سيستمع إلى أي اتصال وارد على المنفذ 8080.

الآن، سنتحقق مما إذا كان الخادم يعمل كما هو متوقع. قم بتشغيل الخادم:

من شاشة طرفية جديدة، يمكننا استخدام curl لإرسال طلب إلى الخادم:

بدلاً من ذلك، يمكنك الوصول إلى الرابط في متصفح الويب:

الخطوة 3 – إنشاء Dockerfile

يحتوي ملف Dockerfile  على التعليمات اللازمة لإنشاء صورة Docker. يتم اتباع التعليمات الموجودة في الملف بالتتابع. تعرف على المزيد حول Dockerfile.

قم بإنشاء Dockerfile جديد لمشروعنا:

الآن، سنقوم بإدخال الأكواد اللازمة فيه. افتحه في محرر نصوص:

أدخل الكود التالي:

هنا،

  • أي Dockerfile يجب أن يبدأ بـ FROM التوجيهي. في حالتنا، نقوم بالإعلان عن Python كقاعدة لصورة Docker.

  • التوجيه ENV SRC_DIR يحدد موقع دليل الحاوية.

  • التوجيه COPY ينسخ الملفات من دليل src الذي يستضيف حاليًا خادم Python.

  • المتغير PYTHONBUFFERED=1 يحدد أن Python ستقوم بطباعة وتسجيل المخرجات مباشرة إلى STDOUT. خلاف ذلك، لن يتم إرسال السجلات إلى أي مخزن مؤقت.

  • التوجيه CMD يحدد أمرًا افتراضيًا لتشغيله عند تنفيذ الحاوية. في هذه الحالة، نستخدم التوجيه لتشغيل خادم Python الخاص بنا.

الخطوة 4 – إنشاء صورة Docker

مع وجود Dockerfile جاهزًا، يمكننا الآن بناء الصورة. قم بتشغيل أمر Docker التالي لبدء العملية:

هنا،

  • العلامة -t تُستخدم لتسمية صورة Docker الخاصة بنا كـ python_server.

  • سيقوم Docker بتنزيل جميع المكونات اللازمة ودمجها في صورة.

الخطوة 5 – تنفيذ الصورة

الصورة جاهزة للنشر. يمكننا تنفيذها باستخدام الأمر التالي:

هنا، نقوم بتوجيه المنفذ 8080 من الجهاز المحلي إلى صورة Docker باستخدام العلامة -p .

يمكننا بسهولة التحقق مما إذا كان الخادم يعمل باستخدام curl:

الخطوة 6 – إنهاء الخادم

من الطرفية، اضغط على “Ctrl + C” لإنهاء عملية Docker:

الخطوة 7 – تصدير واستيراد صورة Docker

لدينا الآن صورة Docker صالحة للعمل تستضيف خادم Python الخاص بنا. بمساعدة ميزات التصدير والاستيراد في Docker، يمكننا نقلها إلى أي نظام آخر.

أولاً، تحقق من قائمة صور Docker في النظام الحالي:

هدفنا هو صورة python_server لـ Docker التي أنشأناها للتو. سيقوم الأمر التالي بتصديرها كأرشيف TAR:

بعد نقل ملف python_server.tar إلى الجهاز المستهدف، استخدم الأمر التالي لاستيراد صورة Docker:

أفكار نهائية

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

هل أنت مهتم بمعرفة المزيد عن Docker؟ تحقق من الأدلة التالية:

حوسبة سعيدة!

author

Preslav Dobrev

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.