Docker Compose: الأساسيات والاستخدام

Docker Compose هي أداة قوية وشائعة تستخدم لإدارة ونشر التطبيقات على أساس Docker. يتيح لك تحديد Docker حاويات متعددة وتكوينها وتشغيلها كمشروع واحد ، مما يبسط نشر التطبيق ويضمن الاتساق بين بيئات التطوير والإنتاج.

فيما يلي بعض المفاهيم والأمثلة على Docker Compose:

حدد المشروع باستخدام ملف docker-compose.yml

في docker-compose.yml الملف ، يمكنك تحديد الخدمات المطلوبة لتطبيقك. على سبيل المثال ، لنشر تطبيق ويب PHP مع قاعدة بيانات MySQL ، يمكنك تحديد خدمتين على النحو التالي:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

في مقتطف الشفرة أعلاه ، نحدد خدمتين: web و db. ستستخدم الخدمة web PHP 7.4 image with Apache ، والاستماع على المنفذ 80 ، وتحميل ./app الدليل من المضيف إلى /var/www/html الدليل في ملف container. db ستستخدم الخدمة MySQL 5.7 وتضع image بعض متغيرات البيئة المطلوبة لقاعدة البيانات.

 

باستخدام Docker Compose الأمر

بمجرد تحديد المشروع في الملف docker-compose.yml ، يمكنك استخدام Docker Compose الأوامر لإدارة الخدمات.

  • ابدأ المشروع: docker-compose up

    سيبدأ هذا الأمر حاويات الخدمات المحددة في الملف docker-compose.yml.

  • قم بإيقاف وإزالة الحاويات: docker-compose down

    يقوم هذا الأمر بإيقاف وإزالة كافة الحاويات المتعلقة بالمشروع.

  • قائمة الحاويات قيد التشغيل: docker-compose ps

    سيعرض هذا الأمر حالة الحاويات في المشروع.

  • عرض سجلات الخدمة: docker-compose logs

    يعرض هذا الأمر سجلات الخدمات في المشروع.

 

متغيرات البيئة والتخصيص

Docker Compose يسمح لك باستخدام متغيرات البيئة لتخصيص التكوينات لبيئات مختلفة ، مثل التطوير والإنتاج. يمكنك استخدام متغيرات البيئة في الملف docker-compose.yml وتحديد قيمها في .env الملفات المقابلة.

على سبيل المثال ، إذا كنت تريد تحديد متغير بيئة لمنفذ الخدمة web ، فيمكنك إضافة سطر إلى الملف .env مثل هذا:

WEB_PORT=8080

بعد ذلك ، في docker-compose.yml الملف ، يمكنك استخدام متغير البيئة هذا مثل هذا:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

عند تشغيل docker-compose up الأمر ، web ستستمع الخدمة إلى المنفذ 8080 بدلاً من المنفذ 80.

 

التكامل مع Docker سوام

إذا كنت ترغب في نشر التطبيق الخاص بك على بيئة موزعة مع عدة عقد ، Docker Compose يمكن أن تتكامل مع Docker Swarm. يتيح لك ذلك إدارة الخدمات عبر عقد متعددة في Docker مجموعة.

لاستخدام هذا التكامل ، تحتاج فقط إلى إضافة --orchestrate أو --with-registry-auth خيارات عند التشغيل docker stack deploy أو docker-compose up الأوامر في Swarm بيئة.

 

Docker Compose أداة مفيدة لتطوير التطبيقات واختبارها ونشرها بطريقة سهلة وفعالة. إنه يقلل الاختلافات بين بيئات التطوير والإنتاج ، ويضمن الاتساق في عملية تطوير البرامج ، ويعزز إنتاجية فرق التطوير.