تخطَّ إلى المحتوى

🐳 شرح Docker

Docker Compose

الدرس 4 من 31· ⏱ 1 دقائق قراءة· 🗓 آخر تحديث: ٢١ أغسطس ٢٠٢٦

لماذا Docker Compose؟

التطبيق الحقيقي غالبًا عدة خدمات: تطبيق + قاعدة بيانات + ذاكرة تخزين. تشغيلها يدويًا متعب. Docker Compose يشغّلها كلها بملف واحد وأمر واحد.

ملف docker-compose.yml

services:
  app:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data   # حفظ بيانات القاعدة خارج الحاوية

volumes:
  pgdata:   # named volume — يبقى حتى لو حُذفت الحاوية

شرح الملف

  • services = قائمة الحاويات.
  • build: . = ابنِ من Dockerfile المحلّي.
  • image: = استخدم صورة جاهزة.
  • ports = ربط المنافذ.
  • depends_on = رتّب التشغيل (db قبل app).
  • environment = متغيّرات البيئة.
  • volumes (على مستوى الخدمة) = ربط مجلّد؛ volumes: (على مستوى الملف) = تعريف named volume تديره Docker.

الأوامر الأساسية

docker compose up          # شغّل كل الخدمات
docker compose up -d       # في الخلفية
docker compose ps          # حالة الخدمات
docker compose down        # أوقف واحذف كل شيء
docker compose down -v     # + حذف الـ volumes أيضًا
docker compose logs        # عرض السجلّات
docker compose logs -f     # متابعة حيّة

الفائدة

أمر واحد docker compose up يشغّل تطبيقك بالكامل مع قاعدة بياناته — بيئة تطوير كاملة في ثوانٍ، متطابقة لكل أفراد الفريق.

🎯 التالي: التثبيت وأوامر CLI بالتفصيل.

شرح Docker Compose — Docker بالعربي
Docker ComposeDocker بالعربي · The Code Fix

📚 لمزيد من التعمّق في Docker، راجِع التوثيق الرسمي لـ Docker.

هل كان هذا الدرس مفيدًا؟