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

كيفية تثبيت وتكوين Docker Compose على Ubuntu 20.04

كيفية تثبيت وتكوين Docker Compose على Ubuntu 20.04

مقدمة

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

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

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

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

الخطوة 1: تثبيت Docker Compose

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

أولاً، قم بتسجيل الدخول إلى خادم Ubuntu الخاص بك باستخدام مستخدم sudo غير الجذري وأدخل الأمر التالي. يقوم بتنزيل أحدث إصدار (1.28.5) ويحفظ الملف القابل للتنفيذ في دليل /usr/local/bin/docker-compose . هذا يجعله متاحًا بشكل عام كـ docker-compose:

بمجرد تنزيله، أدخل الأمر التالي لتعيين الأذونات المناسبة ليكون أمر docker-compose قابلاً للتنفيذ:

الآن، تحقق من نجاح التثبيت وإمكانية استدعاء الأمر عن طريق تشغيل الأمر التالي:

يجب أن تحصل على مخرجات مثل هذه:

docker compose version

يؤكد هذا أنه تم تثبيت Docker Compose بنجاح على نظامك.

الخطوة 2: إنشاء ملف docker-compose.yml

لمساعدتك في فهم كيفية العمل مع docker-compose.yml, سنقوم بتكوين بيئة خادم ويب باستخدام صورة Nginx من Docker Hub. بمجرد النشر، يجب أن نكون قادرين على تقديم صفحة HTML أساسية من الحاوية.

سنقوم بإنشاء دليل العمل الخاص بنا في المجلد الرئيسي الذي سنعمل منه. أدخل الأمر التالي لإنشاء الدليل:

بعد ذلك، انتقل إلى الدليل:

بمجرد دخولك إلى الدليل، قم بإنشاء مجلد تطبيق سيكون الجذر للمستندات لبيئة Nginx . يمكننا تسمية هذا المجلد app:

  • إنشاء صفحة HTML

دعنا نستخدم محرر النصوص nano لإنشاء ملف index.html داخل مجلد app:

بعد ذلك، أضف كود HTML التالي إلى الملف:

لحفظ الملف، اضغط على CTRL +O، ثم ENTER. بعد ذلك، أغلق باستخدام CTRL +X. بعد ذلك، سنقوم بإنشاء ملف docker-compose.yml داخل المجلد الرئيسي لمشروعنا.

  • استضافة صفحة HTML باستخدام docker-compose

بعد ذلك، أدخل الأمر التالي لفتح الملف باستخدام محرر nano :

بعد ذلك، أضف مقتطف الكود التالي داخل الملف:

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

بعد رقم الإصدار، لدينا كتلة الخدمات (services) التي تحتوي على الخدمات التي تشكل البيئة. في هذا البرنامج التعليمي، قمنا بتحديد خدمة واحدة فقط تسمى webserver. إن خدمة webserver ستستخدم صورة nginx:alpine. لقد قمنا أيضًا بتحديد إعادة توجيه المنفذ 8000:80. ما يعنيه هذا هو أن جميع الطلبات من المنفذ 8000 على الجهاز المضيف سيتم إعادة توجيهها إلى حاوية webserver على المنفذ 80، حيث يتم تشغيل Nginx.

يتيح لك توجيه volumes إنشاء حجم مشترك بين الجهاز المضيف والحاوية والذي يمكننا استخدامه لحفظ البيانات بشكل دائم. في مقتطف الكود الخاص بنا لـ yml، نقوم بمشاركة مجلد app المحلي مع الحاوية. داخل الحاوية، سيتم وضعه في المسار /usr/share/nginx/html. وبالتالي، فإنه يكتب فوق جذر المستند الافتراضي لـ Nginx. يمكنك حفظ الملف وإغلاقه الآن.

حتى هذه النقطة، قمت بإنشاء صفحة ويب HTML تجريبية وملف docker-compose.yml مع تعليمات لبناء بيئة خادم ويب داخل حاوية. دعنا نرى كيف يمكننا تشغيل هذا الإعداد في الخطوة التالية.

الخطوة 3: تنفيذ أمر Docker Compose

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

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

 compose up

عندما ينتهي تنفيذ الأمر، سيبدأ تشغيل بيئة الحاوية في الخلفية. يمكنك التحقق من أنها تعمل باستخدام الأمر:

يجب أن تحصل على مخرج مشابه:

 compose ps

إذا انتقلت إلى عنوان IP الخاص بخادمك أو اسم النطاق وأضفت المنفذ 8000، أي server_domain_or_IP:8000 يجب أن تكون قادرًا على رؤية صفحة HTML التجريبية التي أنشأناها:

docker compose webpage

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

الخطوة 4: أوامر Docker Compose الإضافية لإدارة بيئات الحاويات

الآن بعد أن قمت بنشر صفحة ويب بنجاح باستخدام أمر docker-compose-up الفردي، دعنا نرى بعض الأوامر الإضافية التي يمكن أن تكون مفيدة في إدارة البيئات المعبأة في حاويات.

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

إليك عينة من مخرجات السجلات:

 logs

يمكنك إيقاف تنفيذ البيئة مؤقتًا دون تغيير حالة الحاويات باستخدام الأمر:

 compose pause

بعد ذلك، لإلغاء الإيقاف المؤقت أو استئناف التنفيذ، استخدم الأمر:

docker compose unpause

قد ترغب في إيقاف الحاويات دون تدمير بياناتها. للقيام بذلك، استخدم الأمر التالي:

stop

لتدمير الحاويات والشبكات والأحجام المرتبطة بالبيئة المعبأة في حاويات، استخدم الأمر:

docker compose down

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

 image remove

أخيرًا، قد تجد المزيد من الأوامر في وثائق مرجع سطر أوامر Docker Compose الرسمية.

الخاتمة

في هذا الدرس التعليمي، قمت بتثبيت Docker Compose على Ubuntu 20.04، وأنشأت بيئة حاويات تعتمد على صورة خادم ويب Nginx، وتعلمت كيفية إدارة الخدمات المختلفة باستخدام أوامر Docker Compose.

إذا كنت ترغب في تعلم كيفية نشر تطبيق ديناميكي حقيقي يعتمد على عدة حاويات، فيرجى قراءة الدرس التعليمي الخاص بنا حول نشر Laravel و Nginx و MySQL باستخدام Docker Compose. يمكنك أيضًا العثور على قائمة كاملة بأوامر docker-compose في وثائق Docker Compose الرسمية.

حوسبة سعيدة!

author

Pranay Kapgate

المؤلف · CloudSigma

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

التعليقات

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