Docker Compose

From binaryoption
Jump to navigation Jump to search
  1. Docker Compose: دليل شامل للمبتدئين

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

ما هو Docker Compose ولماذا نستخدمه؟

تخيل أنك تقوم بتطوير تطبيق ويب يتكون من ثلاثة مكونات رئيسية: خادم ويب (مثل Nginx أو Apache )، وقاعدة بيانات (مثل PostgreSQL أو MySQL )، وتطبيق Python أو Node.js خلفي. بدون Docker Compose، ستحتاج إلى تشغيل كل من هذه المكونات كحاويات Docker منفصلة، مع تتبع الأوامر والشبكات والوحدات التخزينية لكل منها.

Docker Compose يحل هذه المشكلة عن طريق السماح لك بتعريف جميع هذه المكونات في ملف واحد يسمى عادةً docker-compose.yml. هذا الملف يحدد:

  • الخدمات: كل خدمة تمثل حاوية Docker واحدة.
  • الصور: الصورة التي سيتم استخدامها لإنشاء الحاوية.
  • المنافذ: المنافذ التي سيتم تعريضها من الحاوية إلى المضيف.
  • وحدات التخزين: وحدات التخزين التي سيتم ربطها بالحاوية.
  • الشبكات: الشبكات التي ستنضم إليها الحاوية.
  • التبعيات: التبعيات بين الخدمات (على سبيل المثال، التطبيق الخلفي يعتمد على قاعدة البيانات).

باستخدام Docker Compose، يمكنك تشغيل تطبيقك بأكمله بامر بسيط: docker-compose up. ستقوم Docker Compose تلقائيًا بإنشاء وتشغيل جميع الحاويات المحددة في ملف YAML، وتكوين الشبكات ووحدات التخزين، والتأكد من أن جميع التبعيات يتم تلبيتها.

بناء ملف docker-compose.yml

ملف docker-compose.yml هو قلب Docker Compose. إليك مثال بسيط يوضح كيفية تعريف تطبيق ويب بسيط يتكون من خادم ويب و قاعدة بيانات PostgreSQL:

Admin (talk)yaml version: "3.9" services:

 web:
   image: nginx:latest
   ports:
     - "80:80"
   volumes:
     - ./html:/usr/share/nginx/html
 db:
   image: postgres:13
   environment:
     POSTGRES_USER: myuser
     POSTGRES_PASSWORD: mypassword
   volumes:
     - db_data:/var/lib/postgresql/data

volumes:

 db_data:

Admin (talk)

في هذا المثال:

  • version: "3.9" يحدد إصدار صيغة ملف Docker Compose.
  • services: يحدد قائمة الخدمات.
  • web: هي خدمة تمثل خادم الويب.
   *   image: nginx:latest يحدد الصورة التي سيتم استخدامها لخادم الويب (أحدث إصدار من Nginx).
   *   ports: يربط المنفذ 80 على المضيف بالمنفذ 80 في الحاوية.
   *   volumes: يربط الدليل ./html على المضيف بالدليل /usr/share/nginx/html في الحاوية.
  • db: هي خدمة تمثل قاعدة بيانات PostgreSQL.
   *   image: postgres:13 يحدد الصورة التي سيتم استخدامها لقاعدة البيانات (الإصدار 13 من PostgreSQL).
   *   environment: يحدد متغيرات البيئة التي سيتم تعيينها في الحاوية.
   *   volumes: يربط وحدة التخزين المسماة db_data بالدليل /var/lib/postgresql/data في الحاوية.
  • volumes: يحدد قائمة بوحدات التخزين.
   *   db_data: هي وحدة تخزين مسماة.

الأوامر الأساسية لـ Docker Compose

بمجرد إنشاء ملف docker-compose.yml، يمكنك استخدام الأوامر التالية لإدارة تطبيقك:

  • docker-compose up: يقوم بإنشاء وتشغيل جميع الحاويات المحددة في ملف YAML.
  • docker-compose down: يقوم بإيقاف وإزالة جميع الحاويات والشبكات ووحدات التخزين المرتبطة بالتطبيق.
  • docker-compose ps: يعرض قائمة بالحاويات قيد التشغيل.
  • docker-compose logs: يعرض سجلات الحاويات.
  • docker-compose build: يقوم ببناء الصور من ملفات Dockerfile (إذا كانت موجودة).
  • docker-compose exec <service> <command>: يقوم بتشغيل أمر داخل حاوية معينة.

مزايا استخدام Docker Compose

  • التبسيط: يبسط إدارة التطبيقات متعددة الحاويات.
  • إعادة الإنتاجية: يضمن أن تطبيقك يعمل بنفس الطريقة في أي بيئة.
  • التحكم في الإصدار: يسمح لك بتتبع التغييرات في تكوين تطبيقك باستخدام نظام التحكم في الإصدار (مثل Git ).
  • قابلية التوسع: يجعل من السهل توسيع نطاق تطبيقك عن طريق إضافة المزيد من الحاويات.

مقارنة مع أدوات أخرى

Docker Compose يختلف عن أدوات إدارة الحاويات الأخرى مثل Kubernetes. Kubernetes هو نظام تنسيق حاويات أكثر تعقيدًا مصممًا لتشغيل التطبيقات واسعة النطاق في بيئات الإنتاج. Docker Compose أكثر ملاءمة للتطوير المحلي والاختبار والنشر البسيط.

أمثلة متقدمة

  • الشبكات المخصصة: يمكنك تعريف شبكات مخصصة لربط الحاويات ببعضها البعض.
  • وحدات التخزين المخصصة: يمكنك تعريف وحدات تخزين مخصصة لتخزين البيانات بشكل دائم.
  • متغيرات البيئة: يمكنك استخدام متغيرات البيئة لتكوين الحاويات بشكل ديناميكي.
  • ملفات YAML المتعددة: يمكنك تقسيم ملف docker-compose.yml إلى ملفات متعددة لتبسيط التكوين.

استراتيجيات تداول الخيارات الثنائية ذات الصلة

التحليل الفني وحجم التداول

Docker Compose هي أداة أساسية لأي شخص يعمل مع Docker. من خلال فهم المفاهيم الأساسية والأوامر، يمكنك تبسيط عملية تطوير ونشر تطبيقاتك.

Docker Docker Hub Docker Swarm Kubernetes YAML Virtualization Containerization Microservices CI/CD DevOps Linux Cloud Computing Nginx PostgreSQL MySQL Git Web Server Database Application Development Server Networking

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين