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 أداة مفيدة لتطوير التطبيقات واختبارها ونشرها بطريقة سهلة وفعالة. إنه يقلل الاختلافات بين بيئات التطوير والإنتاج ، ويضمن الاتساق في عملية تطوير البرامج ، ويعزز إنتاجية فرق التطوير.

