خصم ٥٠٪ جميع الخطط، لفترة محدودة. تبدأ من $2.48/mo
9 دقائق متبقية
أدوات المطورين وDevOps

دليل سهل لسجلات Docker Compose: كيفية الفحص والإدارة

Ada Lovegood By Ada Lovegood قراءة 9 دقائق محدّث في 23 فبراير 2025
سجلات docker

هل تريد معرفة ما تفعله تطبيقات Docker خلف الكواليس؟ السجلات هي النافذة الخفية التي تُظهر كل ما يجري داخل الحاويات، وهي أداة لا غنى عنها لتشخيص المشكلات. لكن قبل أن نبدأ، دعنا نلقي نظرة سريعة على Docker و Docker Compose.

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

يأتي Docker Compose مدمجاً مع Docker، ويُبسّط تطوير تطبيقات متعددة الحاويات عبر ربط خدماتها وشبكاتها وتخزينها معاً. تُساعد سجلات حاويات Docker وسجلات Docker Compose المطورين على متابعة ما يجري داخل كل حاوية.

هل تريد التعمق في سجلات Docker Compose؟ أنت في المكان الصحيح. ستشرح هذه المقالة أساسيات هذه السجلات وتتناول تفاصيل أكثر تقدماً، لتستفيد من Docker Compose في مشاريعك بأفضل صورة.

أهمية سجلات Docker Compose

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

سواء كنت مطوراً أو مسؤول أنظمة، فأنت بحاجة إلى فهم ما يجري داخل التطبيقات متعددة الخدمات وفيما بينها. هنا يبرز دور سجلات Docker Compose. فلماذا هي ضرورية؟

  • تشخيص المشكلات وتصحيح الأخطاء

عندما يتوقف تطبيق عن العمل أو يواجه أخطاء، فإن سجلات docker هي أول مكان تبحث فيه. تُمكّنك هذه السجلات من تتبع المشكلة وتحديد جذرها بدقة، سواء كان خطأً في الكود، أو إعداداً خاطئاً، أو نقصاً في الموارد.

  • مراقبة صحة التطبيق

المراقبة المنتظمة لسجلات التطبيق تكشف عن الحالة العامة للخدمات. يمكن للسجلات رصد مؤشرات إنذار مبكر كتكرار الأخطاء وبطء الاستجابة، وهو ما يساعد على تفادي مشكلات أكبر قبل أن تتفاقم.

  • التدقيق والامتثال

بالنسبة للتطبيقات الخاضعة لمعايير محددة، تُمثّل سجلات docker الدليل الأول على مدى التزام التطبيق بتلك المعايير. كما تؤدي هذه السجلات دوراً محورياً في رصد الأنشطة المصرّح بها وغير المصرّح بها.

  • التحسين والضبط

السجلات موارد قيّمة لتحسين البرمجيات، إذ توفر بيانات دقيقة عن الأداء. فمن خلالها يستطيع المطورون تحديد الاستعلامات البطيئة، ومسارات الكود غير الكفؤة، والموارد غير المستغلة.

بناء بيئة Docker: نشر خادم ويب

في هذا القسم، سنتعلم معاً كيفية إنشاء وصفة Docker. نحتاج أولاً إلى بناء شيء نبدأ به رحلتنا مع Docker Compose logs. سنشغّل لهذا الغرض خادم ويب. لإنشاء ملف Docker، نفّذ الأمر nano ملف Dockerfile في المجلد المطلوب على جهازك VPS، بالمحتوى التالي، ثم احفظ الملف:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

ماذا تفعل كل سطر من هذا الكود؟

  • نبدأ بصورة أساسية خفيفة الوزن، nginx:alpine.
  • بعد ذلك، نحذف صفحة الترحيب الافتراضية لـ Nginx.
  • ثم نتأكد من أن خادم الويب يستمع على المنفذ 80.
  • أخيراً، نشغّل خادم Nginx باستخدام CMD.

أصبح ملف Docker جاهزاً الآن، وسننتقل إلى الخطوة التالية وهي إنشاء ملف Docker Compose. إليك هيكل ملف docker-compose.yml :

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

لنشرح كل جزء منه بالتفصيل:

  • نستخدم الإصدار 3.8.
  • في السطر التالي، نسمي خدمتنا «web“.
  • ثم نأمر Docker ببناء خادم الويب من المجلد الحالي.
  • نربط المنفذ 8080 على الجهاز المضيف بالمنفذ 80 داخل الحاوية، لتمكين خادم الويب من إنشاء اتصال.
  • أخيراً، يعمل إعداد volumes على تعيين index.html من قرص الجهاز المضيف إلى الحاوية. يمكنك لاحقاً إنشاء ملف index.html بأي محتوى تريد، ووضعه في المكان الذي توجد فيه ملفات Dockerfile و docker-compose.yml .

حان الوقت الآن لتشغيل حاوية Docker باستخدام Docker Compose. ببساطة، نفّذ الأمر docker-compose up.

تشغيل حاوية Docker باستخدام Docker Compose

بمجرد تنفيذ الأمر docker-compose up سيقوم Docker بتنزيل الصور المطلوبة من الإنترنت وضبط إعداداتها وفقاً لملفات الإعداد التي حددناها.

للتحقق من أن خادم الويب يعمل بشكل صحيح، افتح المتصفح، أدخل عنوان IP الخاص بـ VPS، ثم اطلب الوصول إلى المنفذ 8080.

صفحة ويب مُشغَّلة بـ Docker

كملاحظة جانبية، يمكنك استخدام docker-compose up -d لتشغيل الحاوية في الخلفية.

الوصول إلى السجلات عبر Docker Compose

خادم الويب الآن جاهز ويعمل بالكامل. يُنشئ سجلات بشكل مستمر ويحتفظ بها لاستخدامها لاحقاً. الاطلاع على سجلات docker compose أمرٌ ضروري لاستكشاف الأخطاء ومراقبة الأداء. فكيف نقرأ هذه السجلات؟ هنا يأتي دور سجلات docker-compose تأكد من أنك داخل المجلد الذي يحتوي على ملف الإعداد، ثم نفّذ هذا الأمر.

الوصول إلى السجلات عبر Docker Compose

في بعض الأحيان، قد تحتاج إلى متابعة السجلات لحظةً بلحظة أثناء إنشائها. أضف -f في نهاية الأمر السابق ونفّذ docker-compose logs -f.

الوصول إلى السجلات عبر Docker Compose

بعض التطبيقات المبنية على Docker قد لا تُدرج الطوابع الزمنية في سجلاتها. في هذه الحالة، استخدم docker-compose logs -t لإضافة توقيت مسجَّل لكل سطر في السجل.

الوصول إلى السجلات عبر Docker Compose

يمكن لسجلات Docker أيضاً عرض أحدث المدخلات. لتحقيق ذلك، استخدم docker-compose logs –tail 10 لعرض آخر 10 إدخالات في السجل. تُعدّ خاصية tail في سجلات Docker Compose، وكذلك في docker logs، مفيدةً بشكل خاص حين تريد التحقق سريعاً من آخر النشاطات دون الحاجة إلى التمرير عبر كامل تاريخ السجل.

الوصول إلى السجلات باستخدام Docker Compose

الغرض الأساسي من Docker Compose هو بناء تطبيقات متعددة الحاويات. لذا، قد تحتاج أحياناً إلى قراءة سجلات خدمة بعينها. للقيام بذلك، استخدم docker-compose logs -f SERVICEمع استبدال SERVICE باسم خدمتك الفعلية.

الوصول إلى السجلات مع Docker

تسجيل Docker

قد تصبح بيئة Docker أكثر تعقيداً في التطبيقات المدمجة، لا سيما في البيئات الكبيرة. وكما هو معروف، يُنتج كل حاوية سجلاتها الخاصة. لذلك، تتولى آلية تُعرف بـ Logging Driver استقبال هذه السجلات وتوصيلها وتخزينها. يستخدم Docker ملفات JSON افتراضياً لهذا الغرض، غير أنه يدعم أيضاً عدداً من المشغّلات الأخرى، لكلٍّ منها مزاياه وعيوبه.

لا خلاف على أن السجلات ضرورية في مجالات عدة، من بينها تشخيص الأعطال وتحسين أداء النظام. فيما يلي، سنتناول جانبين رئيسيين من جوانب استخدام سجلات الحاويات:

  • المراقبة: تتمثل الوظيفة الأساسية للسجلات في المراقبة، إذ تكشف عموماً عن الحالة الصحية العامة لتطبيقاتنا المعتمدة على الحاويات.
  • تشخيص الأعطال: في حال وقوع مشاكل، تساعدنا السجلات في اكتشاف أعطال التطبيقات.

نظراً لأن سجلات docker logs وdocker compose logs تتراكم باستمرار، فقد تستهلك كامل مساحة تخزين VPS. لذلك، نحتاج إلى آلية لإدارة مساحة القرص تُعرف بسياسة تدوير السجلات (Log Rotation Policy). لإنشاء هذه السياسة وتفعيلها، ارجع إلى الملف docker-compose.yml وافتحه، ثم أضف قسم التسجيل بالإعدادات التالية:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

يمكنك تعديل القيمتين max-size و max-file في أي وقت وفق احتياجاتك.

نماذج تسليم سجلات Docker

قد يلجأ المهندسون في البيئات المتقدمة إلى نماذج تسجيل مختلفة عن مشغّل JSON الافتراضي، مثل Syslog وfluentd وغيرهما. غير أنه تجدر الإشارة إلى أن مشغّل JSON-file يُلبّي متطلبات معظم سيناريوهات التسجيل، وقد لا تكون ثمة حاجة للخروج عن الإعداد الافتراضي.

قد تفرض عليك متطلبات بنية تطبيقك أو احتياجات مؤسستك اعتماد حلول تسجيل مركزية تُعرف بـ Log Aggregators. هذه الخدمات، ومنها ElasticsearchوLogstash وKibana وغيرها، مصمَّمة لاستقبال السجلات من مصادر متعددة وتجميعها وتخزينها وتحليلها في مكان مركزي واحد.

في المقابل، ينبغي تخزين سجلاتك باستخدام حلول تخزين أقل كلفة. تأمّل مثلاً الحالة التي يعتمد فيها VPS على تخزين عالي السرعة ومرتفع التكلفة؛ فمن غير المجدي اقتصادياً توظيف هذه الموارد المتميزة لتخزين سجلات قد لا تحتاج إليها إلا للرجوع إليها مستقبلاً.

تتوفر نماذج تسجيل عديدة، لكل منها مزاياه وعيوبه. من الضروري تقييم كل نموذج بعناية واختيار ما يناسب احتياجاتك تحديداً.

استضافة Linux VPS

احصل على Linux VPS اقتصادي أو مميز لاستضافة موقعك أو سطح المكتب البعيد، بأرخص سعر متاح. VPS يعمل على Linux KVM لزيادة الكفاءة وعلى أجهزة قوية بتخزين NVMe SSD لزيادة السرعة.

اقرأ المزيد

خلاصة

فهم سجلات Docker Compose أمر جوهري لإدارة تطبيقات Docker وتشخيص أعطالها بفعالية. إتقان الوصول إلى هذه السجلات ومراقبتها يُحسّن قدرتك على حل المشكلات ويرفع أداء تطبيقك وأمانه. سواء كنت في مرحلة التطوير أو إدارة الأنظمة، فإن الاستفادة من سجلات Docker Compose ضرورة لا غنى عنها لضمان إدارة فعّالة للحاويات.

الأسئلة الشائعة

كيف أُصفّي سجلات Docker Compose حسب الوقت؟

لا يوفر Docker Compose طريقة مباشرة لتصفية السجلات حسب الوقت. بيد أنك تستطيع تصفيتها عبر توجيهها إلى grep لمطابقة الأنماط. على سبيل المثال، يمكنك استخدام: docker-compose logs | grep "2023-04-06"، مع استبدال "2023-04-06" بالتاريخ أو نمط الوقت الذي تبحث عنه.

كيف أوقف الحاويات التي شغّلتها بـ Docker Compose؟

انتقل إلى المجلد الذي يحتوي على ملف docker-compose.yml ونفّذ الأمر docker-compose down.

كيف أحذف ملفات السجلات يدوياً؟

بدلاً من ضبط تدوير السجلات في ملف docker-compose.yml، يمكنك حذف ملفات سجلات Docker JSON يدوياً من المسار /var/lib/docker/containers/<container_id>/. قبل ذلك، تأكد من تحديد معرّف حاوية Docker باستخدام docker ps -a.

هل يمكن متابعة سجلات Docker بشكل مستمر؟

نعم، يمكنك ذلك. استخدم أمر docker logs مع الخيار -f أو --follow، وسيتيح لك هذا متابعة سجلات Docker بشكل مباشر.

مشاركة

المزيد من المدونة

تابع القراءة.

حاوية معدنية محمية بقبة شبكية سيان نيون متوهجة، تعرض عنوان المقال وشعار Cloudzy على خلفية زرقاء غامقة.
أدوات المطورين وDevOps

أبرز أخطاء أمان Docker الواجب تجنبها في 2026

يمكنك تشغيل Docker في الإنتاج لأشهر دون مشكلة ظاهرة. الحاويات تبدأ، التطبيقات تستجيب، لا شيء يتعطل. ثم منفذ واحد مكشوف أو إذن واحد غير مهيأ يُسبب

Rexa CyrusRexa Cyrus قراءة 15 دقيقة
بنية مكعبة زرقاء متوهجة ثلاثية الأبعاد تمثل حاويات Docker، بجانب نص 'Portainer مقابل Yacht: أي واجهة Docker يجب أن تختار' وشعار Cloudzy.
أدوات المطورين وDevOps

Portainer مقابل Yacht: أي واجهة Docker يجب أن تختار في 2026؟

إدارة حاويات Docker عبر CLI فعّالة في الإعدادات البسيطة، لكنها تنمو بشكل سيئ. مع زيادة عدد الحاويات، تصبح متابعة الحالات والسجلات والتحديثات يدويًا عرضة للأخطاء

Rexa CyrusRexa Cyrus قراءة 13 دقيقة
أدوات التكامل المستمر
أدوات المطورين وDevOps

أفضل أدوات CI/CD لتحسين سير عمل DevOps في 2026

&nbsp; يتطور مشهد تطوير البرمجيات أسرع من أي وقت مضى. وإن كنت لا تريد التخلف عن هذا النمو السريع، فعليك تبني منهجيات DevOps وAgile

Ada LovegoodAda Lovegood قراءة 11 دقيقة

جاهز للنشر؟ تبدأ من 2.48 $/شهر.

سحابة مستقلة منذ 2008. AMD EPYC، NVMe، 40 Gbps. استرداد خلال 14 يومًا.