هل تريد معرفة ما تفعله تطبيقات Docker خلف الكواليس؟ دعنا نتعلم المزيد عن النافذة السرية، المعروفة بالسجلات، الموجودة في حاوياتك والتي تعرض كل حركة تقوم بها. تعد السجلات مفيدة للغاية في حل المشكلات. ولكن قبل أن نبدأ، دعونا نلقي نظرة سريعة على ماهية Docker وDocker Compose.
يتيح لك Docker تجميع تطبيقاتك في حاويات صغيرة وتشغيلها على معظم أنظمة التشغيل دون أي تبعيات. يشبه الأمر وضع تطبيقاتك في صناديق صغيرة تسمى "حاويات"، والتي يمكن تشغيلها بنفس الطريقة في كل مكان. تعد المعرفة بالحاويات شرطًا أساسيًا مهمًا للتعرف على Docker compose. لذا، أشجعك أولاً على قراءة مدونتنا على فوائد الحاويات.
يأتي Docker Compose مزودًا بـ Docker ويعمل على تبسيط تطوير العديد من التطبيقات المعبأة في حاويات من خلال تسلسل خدماتها وشبكاتها وتخزينها. تساعد سجلات حاوية Docker وتسجيلات Docker Compose المطورين على معرفة ما تفعله كل حاوية.
إذًا، هل أنت فضولي بشأن Docker Compose Logs؟ أنت في المكان الصحيح. ستشرح هذه المدونة أساسيات سجلات Docker Compose وستغطي المزيد من التفاصيل المتقدمة. تعرف على كيفية تحقيق أقصى استفادة من Docker Compose لمشاريعك.
أهمية سجلات إنشاء Docker
تخيل أن أحد المطورين يطلق تطبيقًا باستخدام Docker ولكنه يتخطى إعداد سجلات Docker. في البداية، يبدو كل شيء على ما يرام. ولكن سرعان ما يجد المستخدمون أخطاء، ويتباطأ التطبيق. بدون سجلات Docker، لا يستطيع المطور رؤية الخطأ الذي حدث داخل حاويات Docker. تشبه سجلات Docker Compose السجل التفصيلي لهذه الحاويات. إنهم يسجلون كل تفاصيل ما يحدث، وهو أمر مهم للعثور على المشكلات وإصلاحها لاحقًا.
باعتبارك مطورًا أو مسؤول نظام، يجب عليك فهم ما يحدث داخل التطبيقات متعددة السلاسل وفيما بينها. هذا هو المكان الذي تعمل فيه سجلات Docker Compose كأداة مفيدة. إذن، لماذا هذه السجلات ضرورية؟
-
استكشاف الأخطاء وإصلاحها وتصحيح الأخطاء
تحقق من سجلات عامل الإرساء عندما لا يعمل التطبيق بشكل صحيح أو يواجه أخطاء. تعد سجلات Docker هي الموارد الأولى التي يمكنك الاطلاع عليها لتتبع المشكلة. من خلال فحص سجلات عامل الإرساء، يمكن للمطورين تحديد السبب الجذري ومصدر المشكلات، سواء كان خطأ في التعليمات البرمجية، أو تكوينًا خاطئًا، أو مشكلات في الموارد.
-
مراقبة صحة التطبيق
تساعد مراقبة سجلات التطبيق بانتظام على فهم الحالة العامة للخدمات. يمكن أن تكشف السجلات عن علامات الإنذار المبكر، مثل الأخطاء المتكررة والاستجابات البطيئة. إن مراقبة هذه الأنماط مبكرًا يمكن أن تمنع حدوث مشكلات محتملة في المستقبل.
-
التدقيق والامتثال
بالنسبة للتطبيقات التي تحتاج إلى اتباع معايير محددة، تعد سجلات عامل الإرساء أول دليل يوضح ما إذا كان التطبيق يلتزم بالإرشادات. تلعب هذه السجلات أيضًا دورًا أساسيًا في مراقبة الأنشطة المصرح بها أو غير المصرح بها.
-
تحسين
تعد السجلات موارد قيمة لتحسين البرامج من خلال توفير بيانات الأداء. على سبيل المثال، يمكن للمطورين تحديد الاستعلامات بطيئة التشغيل، أو مسارات التعليمات البرمجية غير الفعالة، أو الموارد غير المستغلة.
صياغة وصفة عامل ميناء: نشر خادم ويب
في هذا القسم، سنتعرف معًا على كيفية إنشاء وصفة Docker. نحتاج أولاً إلى إنشاء شيء ما لبدء رحلتنا باستخدام سجلات Docker Compose. دعونا نشر خادم ويب لهذا الغرض. لإنشاء ملف Dockerfile، ما عليك سوى تشغيله نانو دوكرفيل في المجلد المطلوب على VPS الخاص بك بالمحتويات التالية ثم احفظه:
FROM nginx:alpine RUN rm /usr/share/nginx/html/index.html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
إذن، ماذا يفعل كل سطر من هذا الكود؟
- نبدأ بقاعدة خفيفة الوزن، nginx: جبال الألب.
- بعد ذلك، نقوم بمسح صفحة الترحيب الافتراضية لـ Nginx.
- ثم نتأكد من أن خادم الويب يستمع على المنفذ 80.
- أخيرًا، نقوم بتشغيل خادم Nginx باستخدام كمد.
الآن أصبح ملف Dockerfile جاهزًا، وسننتقل إلى الخطوة التالية، وهي إنشاء ملف 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.
- في السطر التالي، نسمي خدمتنا "الويب“.
- بعد ذلك، نطلب من Docker إنشاء خادم الويب الخاص بنا من المجلد الحالي.
- نقوم بربط المنفذ 8080 على مضيفنا بالمنفذ 80 في الحاوية الخاصة بنا لتمكين خادم الويب الخاص بنا من إنشاء اتصال.
- وأخيرا، خرائط تكوين وحدات التخزين index.html من القرص المضيف إلى الحاوية. في وقت لاحق، يمكنك إنشاء index.html ملف يحتوي على أي محتوى تريده ووضعه في مكان ملف الإرساء و docker-compose.yml الملفات موجودة.
حان الوقت الآن لتشغيل حاوية Docker الخاصة بنا باستخدام Docker Compose. ببساطة، نحن نركض عامل الميناء يؤلف.

بمجرد تشغيل عامل الميناء يؤلف سيقوم Docker بتنزيل الصور المطلوبة من الإنترنت وتكوينها وفقًا للتعليمات في ملفات التكوين الخاصة بنا.
للتحقق مما إذا كان خادم الويب الخاص بنا جاهزًا للعمل، افتح متصفح الويب الخاص بك، واكتب عنوان VPS IP الخاص بك، واطلب الوصول إلى المنفذ 8080.

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

في بعض الأحيان، قد ترغب في رؤية النسخة المباشرة من السجلات أثناء إنشائها. ما عليك سوى إضافة -f في نهاية الأمر السابق وتشغيله سجلات إنشاء عامل الإرساء -f.

قد لا تزودك بعض التطبيقات المستندة إلى Docker بالطوابع الزمنية في سجلاتها. لذلك، يمكنك استخدام سجلات إنشاء عامل الإرساء -t لإضافة وقت مسجل لكل سطر من السجل.

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

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

تسجيل عامل الميناء
يمكن أن يصبح نظام Docker البيئي أكثر تعقيدًا بالنسبة للتطبيقات المتقاربة، خاصة في البيئات الكبيرة. كما نعلم بالفعل، تقوم كل حاوية بإنشاء سجلات. لذلك، تكون الآلية المعروفة باسم Logging Driver مسؤولة عن استلام السجلات وتسليمها وتخزينها. افتراضيًا، يستخدم Docker ملفات JSON لبرنامج تشغيل التسجيل، ولكنه يدعم أيضًا العديد من برامج التشغيل الأخرى، ولكل منها إيجابيات وسلبيات.
يتفق الجميع على أن السجلات مهمة في مجالات مختلفة، بما في ذلك استكشاف الأخطاء وإصلاحها وتحسين أداء النظام. سنغطي أدناه جانبين رئيسيين لاستخدام سجلات الحاويات:
- يراقب: الغرض الأساسي للسجلات هو المراقبة. وهي تكشف عمومًا عن الحالة العامة لتطبيقاتنا المعبأة في حاويات.
- استكشاف الأخطاء وإصلاحها: في حالة حدوث مشكلات، تساعدنا السجلات في اكتشاف مواطن الخلل في التطبيق.
نظرًا لأنه يتم إنشاء سجلات عامل الإرساء وسجلات إنشاء عامل الإرساء بشكل مستمر، فقد تملأ جميع وحدات تخزين VPS. لذلك، نحن بحاجة إلى استراتيجية لإدارة مساحة القرص تسمى سياسة تدوير السجل. لإنشاء هذه السياسة واستخدامها، ارجع إلى 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"
يمكنك التعديل باستمرار الحد الأقصى للحجم و الحد الأقصى للملف وفقا لاحتياجاتك.
نماذج تسليم سجلات Docker
قد يختار المهندسون نموذج تسجيل مختلفًا في بيئات أكثر تقدمًا من برامج تشغيل JSON الافتراضية، مثل Syslog وfluentd وغيرها. ومع ذلك، من المهم أن تتذكر أن برنامج تشغيل ملف JSON مناسب لمعظم سيناريوهات التسجيل، وقد لا تكون هناك حاجة للانحراف عن الوضع الافتراضي.
اعتمادًا على بنية تطبيقك أو المتطلبات التنظيمية، قد تضطر إلى استخدام حلول التسجيل المركزية المعروفة باسم Log Aggregators. هذه الخدمات، بما في ذلك بحث مرنتم تصميم Logstash وKibana وما إلى ذلك لتلقي السجلات من مصادر مختلفة ودمجها وتخزينها وتحليلها في موقع مركزي واحد.
وعلى العكس من ذلك، يجب عليك تخزين سجلاتك باستخدام حلول تخزين أكثر فعالية من حيث التكلفة. ضع في اعتبارك السيناريو الذي يستخدم فيه VPS الخاص بك مساحة تخزين عالية السرعة ومكلفة؛ قد لا يكون من الاقتصادي استخدام هذه الموارد المميزة لتخزين السجلات التي قد تحتاجها فقط للرجوع إليها في المستقبل.
تتوفر العديد من نماذج التسجيل، ولكل منها مزايا وعيوب. يعد تقييم كل نموذج بعناية واختيار نموذج بناءً على احتياجاتك الخاصة أمرًا ضروريًا.
احصل على خادم Linux VPS اقتصادي أو متميز لاستضافة موقع الويب الخاص بك أو سطح المكتب البعيد، بأرخص الأسعار المتاحة. يعمل VPS على Linux KVM لزيادة الكفاءة والعمل على أجهزة قوية مع تخزين NVMe SSD لزيادة السرعة.
اقرأ المزيدخاتمة
يعد فهم سجلات Docker Compose أمرًا أساسيًا. فهي تساعد في إدارة تطبيقات Docker وتصحيح أخطائها بشكل جيد. يؤدي تعلم كيفية الوصول إلى هذه السجلات ومراقبتها إلى تحسين حل المشكلات وتعزيز أداء تطبيقك وأمانه. سواء أكان تطوير الأنظمة أو إدارتها، يعد استخدام سجلات Docker Compose أمرًا ضروريًا. إنهم يتأكدون من أن إدارة الحاوية الخاصة بك فعالة.
التعليمات
كيف يمكنني تصفية سجلات Docker Compose حسب الوقت؟
لا يقدم Docker Compose طريقة مباشرة لتصفية السجلات حسب الوقت. ومع ذلك، يمكنك تصفية السجلات عن طريق تمريرها عبر grep لمطابقة الأنماط. على سبيل المثال، يمكنك استخدام: سجلات إنشاء عامل الإرساء | grep "2023-04-06"، مع استبدال "2023-04-06" بالتاريخ أو نمط الوقت المحدد الذي تبحث عنه.
كيف يمكن إيقاف الحاويات التي بدأت باستخدام Docker Compose؟
انتقل إلى الدليل الذي يحتوي على ملف docker-compose.yml وقم بتشغيل الأمر docker-compose.
كيفية إزالة ملفات السجل يدويا؟
بدلاً من تكوين تدوير السجل في ملف docker-compose.yml الخاص بك، يمكنك إزالة ملفات سجل Docker JSON يدويًا من /var/lib/docker/containers/<container_id>/. قبل القيام بذلك، يجب عليك تحديد معرف حاوية Docker باستخدام docker ps -a.
هل يمكنك ذيل سجلات Docker؟
نعم يمكنك ذلك. للقيام بذلك، يجب عليك استخدام الأمر docker logs مع الخيار -f أو -follow. سيؤدي هذا إلى تتبع سجلات Docker لك.