Docker كأتمتة

Skip to content

هذا نص مترجم آليًا وقد يحتوي على أخطاء!

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

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

Easy المهمة 1 - إعداد Nginx باستخدام Docker Compose

أنشئ ملف docker-compose.yml لتشغيل خادم ويب Nginx:

  1. أنشئ مجلدًا جديدًا وأنشئ ملف docker-compose.yml
  2. حدد خدمة باستخدام image: nginx:latest على المنفذ 80
  3. قم بتشغيل docker compose up -d
  4. قم بزيارة http://localhost في المتصفح

Medium المهمة 2 - إضافة خدمة

قم بتوسيع docker-compose.yml من المهمة 1 بخدمة إضافية. على سبيل المثال:

ابدأ كل شيء باستخدام docker compose up -d وتأكد من تشغيل كلتا الخدمتين في وقت واحد.

ملخص

  • Docker Compose يتيح لك تعريف خدمات متعددة في ملف واحد
  • ملف التركيب هو تكوين وتوثيق
  • Volumes تخزن البيانات خارج الحاوية بحيث تبقى بعد إعادة التشغيل
  • التحديث هو docker compose pull + docker compose up -d
  • يجعل Docker من السهل نقل الخدمات بين الخوادم