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

دليل عملي لسجلات Docker Compose: كيفية عرضها وإدارتها

أيدا لوفجود By أيدا لوفجود ٩ دقائق للقراءة تحديث: ٢٣ فبراير ٢٠٢٥
سجلات 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

احصل على VPS اقتصادي أو متميز يعمل بنظام Linux لاستضافة موقعك الإلكتروني أو سطح المكتب البعيد، بأفضل الأسعار المتاحة. يعمل 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 على خلفية زرقاء داكنة.
أدوات المطورين وعمليات التطوير

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

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

ريكسا سيروسريكسا سيروس وقت القراءة: ١٥ دقيقة
بنية مكعب ثلاثية الأبعاد متوهجة باللون الأزرق تمثل حاويات Docker، إلى جانب النص 'Portainer vs Yacht: Which Docker UI Should You Choose' وشعار Cloudzy.
أدوات المطورين وعمليات التطوير

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

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

ريكسا سيروسريكسا سيروس قراءة في ١٣ دقيقة
أدوات التكامل المستمر
أدوات المطورين وعمليات التطوير

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

يتطور مشهد تطوير البرمجيات بوتيرة لم يسبق لها مثيل. وإن كنت لا تريد أن تتأخر عن هذا النمو المتسارع، فعليك تبني منهجيات DevOps وأسلوب العمل Agile

أيدا لوفجودأيدا لوفجود ١١ دقيقة قراءة

هل أنت مستعد للنشر؟ يبدأ من ٢٫٤٨ دولار/شهر.

سحابة مستقلة منذ ٢٠٠٨. AMD EPYC، NVMe، 40 Gbps. ضمان استرداد المبلغ لمدة ١٤ يومًا.