نشر التطبيقات متعددة الخدمات
انشروا تطبيقًا متكاملًا يضم قاعدة بيانات وخدمة خلفية باستخدام Docker Compose
نشر التطبيقات متعددة الخدمات درس مجاني في Docker & DevOps Fundamentals على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Docker & DevOps Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Docker & DevOps Fundamentals 4 دروس في المجموع.
نشر التطبيقات متعددة الخدمات
مرحبًا! سنتعلم في هذا الدرس كيفية تشغيل تطبيق متكامل عبر Docker Compose.
سترون كيفية تعريف خدمات متعددة، مثل تطبيق ويب وقاعدة بيانات، ثم نشرها وإدارتها معًا.

مثالنا: الويب وقاعدة البيانات
سننشر تطبيق ويب بسيطًا يتصل بقاعدة بيانات. وهذا إعداد شائع في العديد من التطبيقات الواقعية.
- خدمة الويب: تطبيق Python Flask يقدّم صفحة ويب أساسية.
- خدمة قاعدة البيانات: قاعدة بيانات PostgreSQL لتخزين البيانات.
يجعل Docker Compose تنسيق هاتين الخدمتين أمرًا سهلًا!
إنشاء صورة الويب
تحتاج خدمة الويب إلى صورة Docker الخاصة بها. إليكم Dockerfile مبسطًا ينشئ تطبيق Python Flask الخاص بنا.
يثبّت Flask وموصل PostgreSQL، ثم يشغّل app.py.
FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir flask psycopg2-binary
EXPOSE 5000
CMD ["python", "app.py"]ملف `docker-compose.yml`
يعرّف ملف docker-compose.yml هذا خدمتنا: web وdb. لاحظوا كيف تُنشئ خدمة web نفسها من Dockerfile وتتصل بخدمة db باستخدام متغيرات البيئة.
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
DB_HOST: db
DB_NAME: mydatabase
DB_USER: user
DB_PASSWORD: password
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:بدء تشغيل خدماتكم
لبدء تشغيل جميع الخدمات المعرّفة في ملف docker-compose.yml، استخدموا الأمر docker compose up.
يشغّل الخيار -d الحاويات في وضع "detached"، أي إنها تعمل في الخلفية.
# This command starts your multi-service app
# and runs it in the background.
docker compose up -dالتحقق من الحاويات قيد التشغيل
بعد تشغيل docker compose up -d، ستحتاجون إلى التحقق من أن جميع خدماتكم تعمل كما هو متوقع.
يسرد الأمر docker compose ps الخدمات وحالتها ومنافذها.
# Check the status of your services
docker compose psالاتصال بتطبيقكم
بعد تشغيل الخدمات، يمكنكم الوصول إلى تطبيق الويب.
- افتحوا متصفح الويب.
- انتقلوا إلى
http://localhost:5000.
ينبغي أن تظهر لكم رسالة من تطبيق Flask الخاص بنا تؤكد اتصاله بقاعدة بيانات PostgreSQL!
توسيع نطاق الخدمات
إحدى الميزات القوية في Docker Compose هي توسيع نطاق الخدمات. إذا كان تطبيق الويب يحتاج إلى التعامل مع عدد أكبر من الطلبات، يمكنكم بسهولة زيادة عدد مثيلات خدمة الويب.
استخدموا الخيار --scale مع docker compose up.
# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -dإيقاف الخدمات وإزالتها
عند الانتهاء من استخدام تطبيقكم، يمكنكم إيقاف جميع الخدمات والشبكات المعرّفة في docker-compose.yml وإزالتها.
يتولى الأمر docker compose down عملية التنظيف هذه نيابةً عنكم.
# Stop and remove all services
docker compose downتحقق سريع
فكّروا في ملف docker-compose.yml الذي استخدمناه. لقد بدأتم تشغيل تطبيقكم للتو باستخدام docker compose up -d.
ما الأمر الأساسي لإيقاف جميع الخدمات قيد التشغيل والموارد المرتبطة بها وإزالتها؟
مراجعة والخطوات التالية
أحسنتم! لقد تعلمتم كيفية نشر تطبيق متعدد الخدمات وإدارته باستخدام Docker Compose.
- عرّفنا الخدمات في
docker-compose.yml. - استخدمنا
docker compose up -dلبدء تشغيل الخدمات. - تحققنا من الحالة باستخدام
docker compose ps. - وسّعنا نطاق الخدمات واستخدمنا
docker compose downللتنظيف.
تُعد هذه مهارة أساسية للتطوير المحلي واختبار التطبيقات المعقدة!
الأسئلة الشائعة
هل درس «نشر التطبيقات متعددة الخدمات» مجاني؟
نعم — نص درس «نشر التطبيقات متعددة الخدمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Docker & DevOps Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Docker & DevOps Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «نشر التطبيقات متعددة الخدمات»؟
انشروا تطبيقًا متكاملًا يضم قاعدة بيانات وخدمة خلفية باستخدام Docker Compose تتمرن على Docker & DevOps Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Docker & DevOps Fundamentals؟
لا تُشترط خبرة سابقة. Docker & DevOps Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «نشر التطبيقات متعددة الخدمات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Docker & DevOps Fundamentals هذا؟
نعم. كل درس في Docker & DevOps Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما Docker Compose؟
- كتابة ملف Compose
- نشر التطبيقات متعددة الخدمات
- متغيرات البيئة وملفات .env