هذا نص مترجم آليًا وقد يحتوي على أخطاء!
Docker يبسّط نشر التطبيقات. بدلاً من تثبيت وتكوين البرامج يدويًا على خادم، فإنك تحدد كل شيء في ملفات التكوين. والنتيجة هي قابلية للتكرار، وقابلية للنقل، وسرعة في الإعداد.
ما هو Docker Compose؟
باستخدام Docker Compose، يمكنك تحديد خدمات متعددة في ملف واحد (docker-compose.yml). كل خدمة عبارة عن حاوية بتكوينها الخاص.
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
أمر واحد يقوم بإعداد كل شيء:
docker compose up -d
# Starter tjenestene i bakgrunnen.
# يبدأ الخدمات في الخلفية.
هل تحتاج إلى نقل الخدمة إلى خادم آخر؟ انسخ الملف وقم بتشغيل نفس الأمر. كل شيء متطابق.
لماذا هذا هو الأتمتة؟
فكر في الفرق:
| الإعداد اليدوي | مع Docker Compose |
|---|---|
| تثبيت Nginx يدويًا | image: nginx:latest |
| تهيئة المنافذ | ports: "80:80" |
| تثبيت Grafana يدويًا | image: grafana/grafana:latest |
| توثيق جميع الخطوات | كل شيء موثق في ملف .yml |
| تكرار كل شيء على الخادم التالي | docker compose up -d |
ملف Docker Compose هو الوثيقة. فهو يصف بالضبط الخدمات التي تعمل، والمنافذ التي تستخدمها، وكيفية تهيئتها.
أوامر Docker المفيدة
| الأمر | ما تفعله |
|---|---|
docker compose up -d | يبدأ جميع الخدمات في الخلفية |
docker compose down | يوقف ويزيل جميع الحاويات |
docker compose logs -f | يتابع السجلات في الوقت الفعلي |
docker compose pull | يجلب أحدث إصدار من جميع الصور |
docker compose restart | يعيد تشغيل جميع الخدمات |
docker ps | يعرض الحاويات قيد التشغيل |
Volumes: تخزين البيانات خارج الحاوية
الحاويات مؤقتة. إذا قمت بحذف حاوية، فسيختفي كل محتواها. للاحتفاظ بالبيانات، نستخدم volumes:
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig # كلمة المرور لقاعدة البيانات
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
يتم تخزين ملفات قاعدة البيانات في وحدة تخزين تسمى db-data. حتى إذا قمت بحذف وإعادة إنشاء الحاوية، تظل البيانات موجودة.
تحديث الخدمات
تحديث خدمة Docker أمر سهل:
# احصل على أحدث نسخة
docker compose pull
# أعد التشغيل بالنسخة الجديدة
docker compose up -d
قارن هذا بتحديث البرامج المثبتة يدويًا، حيث قد تحتاج إلى التنزيل والتكوين والأمل في ألا يتعطل أي شيء.
المهمة 1 - إعداد Nginx باستخدام Docker Compose
أنشئ ملف docker-compose.yml لتشغيل خادم ويب Nginx:
- أنشئ مجلدًا جديدًا وأنشئ ملف
docker-compose.yml - حدد خدمة باستخدام
image: nginx:latestعلى المنفذ 80 - قم بتشغيل
docker compose up -d - قم بزيارة
http://localhostفي المتصفح
المهمة 2 - إضافة خدمة
قم بتوسيع docker-compose.yml من المهمة 1 بخدمة إضافية. على سبيل المثال:
- Uptime Kuma على المنفذ 3001
- Grafana على المنفذ 3000
ابدأ كل شيء باستخدام docker compose up -d وتأكد من تشغيل كلتا الخدمتين في وقت واحد.
ملخص
- Docker Compose يتيح لك تعريف خدمات متعددة في ملف واحد
- ملف التركيب هو تكوين وتوثيق
- Volumes تخزن البيانات خارج الحاوية بحيث تبقى بعد إعادة التشغيل
- التحديث هو
docker compose pull+docker compose up -d - يجعل Docker من السهل نقل الخدمات بين الخوادم