تطوير عامل الميناء. البيئة المحلية. الجزء 1

ربما يكون أحد الأسباب الرئيسية التي تجعلني أحب عامل الإرساء هو أنه يلغي الحاجة إلى تثبيت خدمات مختلفة على جهاز كمبيوتر. وتشمل هذه خادم الويب Apache أو Nginx نفسه ، وقواعد البيانات ، والمكونات الأخرى للبنية التحتية للتطبيق. البنية الأساسية بأكملها مسجلة في ملف تكوين docker-compose.yml ويتم تشغيلها باستخدام أمر واحد مع تطبيقك. كل ما يحتاجه مطور يعمل مع عامل ميناء هو عامل أساسي بحد ذاته وبيئة تطوير مفضلة وكل شيء!

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

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

إذن ما هو موجود في الصورة؟

قد تكون صورة لنظام التشغيل. على سبيل المثال ، صورة أوبونتو. قد يكون هناك صورة مع قاعدة بيانات ، خادم الويب و php ومع أي شيء تقريبا. لبدء هذه المعرفة ستكون كافية بالنسبة لنا.

من المفترض أن يكون للقارئ نفسه تثبيت مثبت ورسو السفن.

نبدأ في نشر بيئتنا من بسيطة إلى أكثر تعقيدًا.

الدرس رقم 1. تثبيت Nginx


دعونا نحاول تثبيت Nginx فقط أولاً. قم بإنشاء docker-compose.yml بالمحتوى التالي:

version: '3.0' services: nginx: image: nginx ports: - 80:80 

بعد ذلك ، قم بتشغيل الأمر up-d docker- ويجب أن يظهر التالي استجابة:

 Creating network "lesson1_default" with the default driver Creating lesson1_nginx_1 ... done 

ندخل http: // localhost / في شريط عنوان المتصفح وتحية "مرحبًا بك في nginx!" يجب أن تكون مرئية لأعيننا. إذا كان الأمر كذلك ، فأنت على الطريق الصحيح.

ما الذي يحدث هنا؟

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

دعنا نحلل الملف المقدم:

  • الإصدار - في البداية ، يتم الإعلان عن إصدار ملف الإنشاء. بدلاً من 3.0 ، يمكنك تحديد 2.0. أقل لم تعد معتمدة. تعتمد الخيارات الموجودة في ملف الإنشاء المتاحة للاستخدام على الإصدار.
  • خدمات - إعلان خدمات
  • يتم تعيين nginx - اسم خدمتنا ، بشكل تعسفي حسب تقديرها. في هذا المثال ، يطابق اسم الصورة.
  • الصورة: nginx - اسم الصورة المراد استخدامها.
  • المنافذ - يعلن التوجيه إعادة توجيه المنفذ. 8080: 80 - يعني هذا الإدخال أن المنفذ المفتوح 80 من الحاوية سيتوافق مع المنفذ 8080 على الجهاز المضيف الذي يعمل فيه عامل النقل. في المثال من الملف ، يتم توصيل المنفذ 80 في الحاوية بالمنفذ 80 على جهاز الكمبيوتر الخاص بك.

سندرس إعلان الصورة بمزيد من التفاصيل ، الصورة: توجيه nginx.

المستودع الرئيسي لجميع الصور هو Docker Hub ، وهناك العديد من الصور الجاهزة المختلفة (يمكنك جمع الصور الخاصة بك ، لكن المزيد حول ذلك لاحقًا). صورة nginx المعلنة هي واحدة منها.

أما بالنسبة للمنافذ "الأمامية". إذا حددت مطابقة 80:80 ، كما في المثال أعلاه ، فستتوفر nginx على المضيف المحلي: 80 أو فقط مضيف محلي. إذا كان المنفذ 80 مأخوذ بالفعل ، فيمكنك تحديد 8080: 80. ثم سيكون الموقع متاحًا في المضيف المحلي: 8080. وفقًا لذلك ، إذا نسيت تمامًا تحديد توجيه المنافذ هذا ، فلن يكون المنفذ متاحًا إلا داخل الحاوية ولن يكون nginx متاحًا من خلال المتصفح.

الحاوية قيد التشغيل. وكيف تعمل فعلا معه؟

يفترض تثبيت خادم الويب أننا نرغب في استخدامه لاستقبال وعرض صفحات html للموقع. هناك سؤال. كيف يمكنني نقل أي ملفات html إلى حاوية؟ مجلدات سوف تساعدنا في هذا

مجلدات


دعنا نجلب docker-compose.yml إلى النموذج التالي:

 version: '3.0' services: nginx: image: nginx ports: - 80:80 volumes: - ./html:/usr/share/nginx/html 

ظهر توجيه وحدات التخزين من التوجيه الجديد ، والذي يشير إلى أنه يتم تحميل المجلد .html المحلي في الحاوية على العنوان / usr / share / nginx / html.

عند التثبيت ، يتم استبدال المجلد الموجود على العنوان المحدد داخل الحاوية بالمجلد من الكمبيوتر المحلي.

لجعله يعمل ، قم بإنشاء مجلد html على نفس المستوى مثل ملف docker-compose.yml وأضف ملف index.html بنص مجاني إليه. على سبيل المثال ، مرحبًا من Docker!

ونعيد إنشاء الحاوية باستخدام نفس الأمر up -d docker
عامل الميناء يعيد إنشاء الحاوية.

 Recreating lesson1_nginx_1 ... done 

تحقق النتيجة في المتصفح. ونحن نرى: مرحبا من عامل الميناء! كل شيء يعمل بها.

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

الجزء 2 - Nginx + PHP + MySql + phpMyAdmin

Source: https://habr.com/ru/post/ar459972/


All Articles