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