Docker Compose: من فوضى الأوامر إلى تطبيقٍ يُدار بملفٍ واحد

عند تشغيل تطبيقٍ يتكوّن من عدّة خدمات — قاعدة بيانات وخادم وِب وذاكرة تخزين مؤقّت مثلًا — يصبح تشغيل كلّ حاوية على حِدة عبر أوامر docker run الطويلة أمرًا مُرهقًا وعُرضةً للخطأ. هنا يأتي دور Docker Compose: أداةٌ تتيح لك وصف منظومة الحاويات كاملةً في ملفٍ نصّي واحد باسم docker-compose.yml، ثمّ تشغيلها جميعًا بأمرٍ واحد. بهذا تتحوّل إعداداتك المتناثرة إلى وثيقةٍ واضحة قابلة للحفظ في مستودع الشيفرة ومشاركتها مع الفريق.

يُكتب الملف بصيغة YAML، ويُعرّف فيه كلّ مكوّنٍ تحت قسم services، حيث تحدّد لكلّ خدمة صورتها (image) والمنافذ المكشوفة (ports) والمتغيّرات البيئية (environment) والأقراص الدائمة (volumes). على سبيل المثال، يمكنك تعريف خدمة web تعتمد على خدمة db عبر الكلمة depends_on، فيتكفّل Compose بإنشاء شبكةٍ داخلية تتواصل عبرها الخدمات بأسمائها مباشرةً دون عناءٍ في ضبط عناوين الشبكة يدويًا.

للبدء عمليًا، يكفي أن تكتب ملفك ثمّ تنفّذ docker compose up -d لتشغيل المنظومة في الخلفية، وdocker compose ps لمتابعة حالة الخدمات، وdocker compose logs -f لتتبّع السجلّات لحظيًا، وأخيرًا docker compose down لإيقاف كلّ شيء وإزالته بنظافة. بهذه الأوامر القليلة تمتلك دورة حياةٍ كاملة لتطبيقك المتعدّد الخدمات، وهو ما يجعل Docker Compose نقطة انطلاقٍ مثالية قبل الانتقال إلى أدوات التنسيق الأضخم مثل Kubernetes.

اترك تعليقاً