دليل المبتدئين إلى Docker - كيفية إنشاء جانب العميل / الخادم مع Docker-Compose

أنت مطور وتريد اكتشاف عامل ميناء؟ يرصد هذا المقال لك.

حقوق الطبع والنشر لتطوير

بعد مقدمة قصيرة عن Docker-Compose ، سوف تكون قادرًا على إنشاء أول تطبيق عميل / خادم من جانب Docker.

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

ما هو عامل الميناء؟

Docker-Compose هي أداة مقدمة من Docker. لتسهيل الأمر ، يتم تنفيذ هذه الأداة لحل المشكلات المعمارية في مشاريعك.

كما لاحظت في مقالتي السابقة ، أنشأنا برنامجًا بسيطًا يعرض "Docker is magic!" عندما تم إطلاقه.

لسوء الحظ ، عندما تكون مطورًا ، نادراً ما تنشئ برنامجًا مستقلًا (برنامج لا يتطلب تشغيل أي خدمات أخرى ، مثل قاعدة البيانات).

ومع ذلك ، كيف يمكنك معرفة ما إذا كنت بحاجة إلى Docker-Compose؟ من السهل إذا كان التطبيق الخاص بك يتطلب تشغيل العديد من الخدمات ، فأنت بحاجة إلى هذه الأداة. على سبيل المثال ، إذا قمت بإنشاء موقع ويب يحتاج إلى الاتصال بقاعدة البيانات الخاصة بك لمصادقة المستخدمين (هنا 2 خدمات وموقع ويب وقاعدة بيانات).

يوفر لك تطبيق Docker إمكانية إنشاء كل هذه الخدمات في أمر واحد.

الفرق بين عامل الميناء و عامل الميناء

يستخدم عامل الميناء لإدارة حاوية فردية (خدمة) للتطبيق الخاص بك.

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

Docker (حاوية فردية) VS Docker-Compose (عدة حاويات)

حالة استخدام نموذجي

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

تخيل أنك الخالق الفخور لبرنامج الويب الخاص بك.

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

لقد بدأت النجاح ، ولم يعد الخادم الخاص بك كافيًا. لذلك ، قررت ترحيل البرنامج بأكمله إلى جهاز آخر.

لسوء الحظ ، لم تستخدم عامل الإرساء. لذا ، سيتعين عليك ترحيل خدماتك وإعادة تكوينها واحدة تلو الأخرى ، على أمل ألا يتم نسيان أي شيء.

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

الآن ، دعونا ننشئ أول تطبيق عميل / خادم من خلال تطبيق Docker-Compose

الآن بعد أن عرفت ما الذي سيتم استخدامه لرسو السفن ، فقد حان الوقت لإنشاء أول تطبيق من جانب العميل / الخادم الخاص بك!

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

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

1. إنشاء مشروعك

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

  • ملف "docker-compose.yml" (ملف docker-compose الذي سيحتوي على الإرشادات اللازمة لإنشاء الخدمات المختلفة).
  • مجلد "الخادم" (سيحتوي هذا المجلد على الملفات اللازمة لإعداد الخادم).
  • مجلد "عميل" (سيحتوي هذا المجلد على الملفات اللازمة لإعداد العميل).

يجب أن يكون لديك بنية المجلد هذه:

.
├── العميل /
├── عامل ميناء compose.yml
└── الخادم /
2 الدلائل ، 1 ملف

2. إنشاء الخادم الخاص بك

للبدء بتذكير أساسيات Docker ، سنبدأ بإنشاء الخادم.

2A. إنشاء ملفات

انتقل إلى مجلد "الخادم" الخاص بك وقم بإنشاء الملفات التالية:

  • ملف "server.py" (ملف python الذي سيحتوي على رمز الخادم).
  • ملف "index.html" (ملف HTML الذي سيحتوي على الجملة المراد عرضها).
  • ملف "Dockerfile" (ملف عامل ميناء يحتوي على الإرشادات اللازمة لإنشاء بيئة الخادم).

يجب أن يكون لديك بنية المجلد هذه في المسار التالي 'server /':

.
ock Dockerfile
├── index.html
└── server.py
0 الدلائل ، 3 ملفات

2B. تحرير ملف بيثون

يمكنك إضافة الكود التالي إلى ملف "server.py":

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

2C. تحرير ملف هتمل

يمكنك إضافة الجملة التالية إلى ملف "index.html":

سيقوم الخادم بمشاركة هذا الملف في البداية ، وسيتم عرض هذه الجملة.

2D. تحرير ملف عامل الميناء

سنقوم هنا بإنشاء Dockerfile الأساسي الذي سيكون مسؤولاً عن تنفيذ ملف Python الخاص بنا. للقيام بذلك ، سنستخدم الصورة الرسمية التي تم إنشاؤها لتنفيذ بيثون.

3. إنشاء عميلك

للاستمرار في تذكير أساسيات Docker ، سننشئ العميل.

3A. إنشاء ملفات

انتقل إلى مجلد "العميل" الخاص بك وقم بإنشاء الملفات التالية:

  • ملف "client.py" (ملف python الذي سيحتوي على رمز العميل).
  • ملف "Dockerfile" (ملف عامل ميناء يحتوي على الإرشادات اللازمة لإنشاء بيئة العميل).

عادة يجب أن يكون لديك بنية المجلد هذه في المسار التالي "client /":

.
├── client.py
ock Dockerfile
0 الدلائل ، 2 الملفات

3B. تحرير ملف بيثون

يمكنك إضافة الكود التالي إلى ملف "client.py":

سيسمح لك هذا الرمز بالحصول على محتوى صفحة الويب الخاصة بالملقم وعرضه.

3C. تحرير ملف عامل الميناء

بالنسبة للخادم ، سنقوم بإنشاء Dockerfile الأساسي الذي سيكون مسؤولاً عن تنفيذ ملف Python الخاص بنا.

4. العودة إلى عامل الميناء يؤلف

كما لاحظت ، أنشأنا مشروعين مختلفين ، الخادم والعميل ، وكلاهما مع Dockerfile.

حتى الآن ، لم يتغير شيء عن الأساسيات التي تعرفها بالفعل.

سنقوم الآن بتحرير "عامل الإرساء - الإنشاء" في جذر المستودع.

ملاحظة: بعد إكمال Docker-Compose ، تهدف هذه المقالة إلى تقديم مثال ملموس ونموذجي لك. لهذا السبب لن ترى كل الكلمات الرئيسية.

5. بناء عامل الميناء ، يؤلف

بمجرد إعداد عامل الإرساء ، يجب إنشاء تطبيق العميل / الخادم. تتوافق هذه الخطوة مع أمر "عامل بناء" ولكن يتم تطبيقها على الخدمات المختلفة.

بناء عامل ميناء - الإنشاء

6. تشغيل عامل الميناء - يؤلف

بنيت الخاص بك عامل ميناء الإنشاء! الآن حان الوقت للبدء! تتوافق هذه الخطوة مع الأمر "تشغيل الرصيف" ولكن يتم تطبيقها على الخدمات المختلفة.

عامل ميناء دولار يؤلف

ها أنت ذا ، هذا كل شيء. يجب أن تشاهد "Docker-Compose is magic!" معروضًا في الجهاز الطرفي.

ملاحظة: كما هو موضح في البرنامج التعليمي ، تستخدم خدمة "الخادم" المنفذ 1234 الخاص بجهاز الكمبيوتر لتوزيع محتواها. إذا قمت بفتح صفحة "http: // localhost: 1234 /" على جهاز الكمبيوتر الخاص بك ، سترى "Docker-Compose سحري!".

الرمز متاح

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

أوامر مفيدة ل Docker

كالمعتاد ، لقد أعددت قائمة بالطلبات التي قد تكون مفيدة لك مع عامل الميناء.

  • توقف الحاويات وإزالة الحاويات والصور ... التي تم إنشاؤها بواسطة "عامل إنشاء".
عامل ميناء - يؤلف
  • يعرض إخراج السجل من الخدمات (على سبيل المثال: "عامل إنشاء سجلات - عميل f").
سجلات إنشاء عامل الإرساء $ -f [اسم الخدمة]
  • قوائم الحاويات.
عامل ميناء - تأليف ps
  • تنفيذ الأمر في حاوية قيد التشغيل (على سبيل المثال: ‘docker-compose exec server ls’).
عامل تنفيذ - $ exec [اسم الخدمة] [أمر]
  • يسرد الصور.
عامل إنشاء الصور $

لقد انتهى بالفعل ...

شكرا للقراءة! أشارك بانتظام مقالات عن FreeCodeCamp ؛ يمكنك التحقق من ملفي الشخصي على Twitter لمتابعة أنشطتي والحصول على نصائح وأخبار مفيدة عن التطوير.

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

-> اشترك في النشرة [هنا كود]

لا تتردد في إعطائي بعض الملاحظات لتحسين مقالاتي المستقبلية في التعليقات أدناه.