6.2مشاكل متكررة (دليل الحلول Playbook)
الأساسي في 30 ثانية
- شخّص : العرض = أسباب محتملة = تسلسل إجراءات — لا نصحح عشوائياً.
- الجذور : المتغيرات والمنافذ والمجلدات وإعادة البناء المنسية والفحص الصحي والحقوق والذاكرة المؤقتة Cache وتسجيل الدخول Login — 90 % من حالات الانسداد.
- تحقق : ps وlogs وconfig والإثبات على مجلد حقيقي، لا فقط على تشغيل معزول.
خيط إدير — اللوحة الملصقة بجانب الشاشة
يحتفظ إدير بهذه اللوحة بجانب شاشته في الجزائر. الحصيلة بعد ثلاثي : ثلاثة سطور خدمته أكثر — الحاوية في وضع Restarting والمنفذ المحجوز مسبقاً والبيانات المفقودة بعد rm. وفي كل منها انتهى إلى تطبيق التسلسل (العرض والأسباب والإجراءات) بدل إعادة التشغيل عشوائياً.
العرض المرصود والأسباب المتحقق منها والإجراءات بالترتيب : المنعكس يسع في ثلاثة أوقات.
منعكس لكل عرض
معظم حالات انسداد Docker كلاسيكيات معروفة. ربط كل عرض بأسبابه المحتملة وتسلسل إجراءاته يوفر وقتاً ثميناً.
| العَرَض | الأسباب المحتملة | الإجراءات |
|---|---|---|
| حاوية في وضع Restarting | متغير -e ناقص ومجلد في مسار خاطئ ومنفذ مشغول | compose ps وlogs الخدمة وتصحيح الملف وup -d |
| port already allocated | محتل (تشغيل قديم) ومكدسان بنفس منفذ المضيف | docker ps شامل وتغيير منفذ المضيف (الأيسر) |
| بيانات مفقودة بعد rm | لا مجلد والتركيب في مسار خاطئ | إضافة مجلد مسمى والإثبات عبر rm + إعادة التشغيل |
| up يتجاهل الشيفرة الجديدة | الصورة غير معاد بناؤها | up -d --build (أو الربط Bind في التطوير) |
| القاعدة « غير جاهزة » عند الإقلاع | depends_on دون شرط ولا إعادة محاولة Retry | الفحص الصحي Healthcheck + شرط healthy + إعادة المحاولة في التطبيق |
| Permission denied على المجلد | تركيب بالجذر root وUSER غير الجذر دون chown | chown عند البناء / مواءمة UID وعدم العودة إلى الجذر |
| صورة ضخمة / بناء بطيء | COPY . . في الأول ولا .dockerignore | الاعتماديات أولاً + .dockerignore + البناء متعدد المراحل Multi-stage |
| Push denied | لا تسجيل دخول واسم دون نطاق Namespace ولا حقوق | تسجيل الدخول واسم الحساب/الصورة والحقوق |
| down مسح كل شيء | down -v على بيانات مرغوبة | down دون -v افتراضياً ؛ ونسخ احتياطية + استعادة مختبرة |
نص جاهز للقول — التشخيص دون إعادة تشغيل عشوائية (30 ثانية)
« عرضي : [Restarting / منفذ محجوز / بيانات مفقودة / قاعدة غير جاهزة]. أتحقق من السبب المحتمل في اللوحة (ps وlogs وconfig والمسارات) وأطبق الإجراء المستهدف وأثبت (إعادة تشغيل وdown/up واستعادة). »
نموذج نسخ ولصق — تشخيص Docker
docker compose ps
docker compose logs -f api
docker ps -a
docker compose config
docker compose up -d --build
شركة صغيرة جداً / ميزانية صغيرة
لا لوحة رسمية : عرض والسبب المحتمل والإجراء ومن يُثبت، مدونة.
شركة صغيرة ومتوسطة في الجزائر
دمج الواقع المحلي في التشخيص : الجهاز الحقيقي والمنافذ المحجوزة مسبقاً ومرجع معروف.
عن بعد / هجين
إضافة الآثار المكتوبة إلى الإجراءات : عن بعد، سجل وإثبات down/up مدونان يتفاديان التكرار.
بين الثقافات
توضيح الملاحظات كتابة : ما يبدو بديهياً (أي خدمة وأي منفذ) ليس كذلك للجميع.
تحدي 48 ساعة — طبّق غداً
رصد عرض واحد حالي (Restarting أو منفذ أو بيانات أو قاعدة غير جاهزة) وطبق سطر اللوحة (عرض مسمى + سبب متحقق منه + إجراء مستهدف) وأثبت.
- أعرف ربط العرض بأسبابه المحتملة.
- أتحقق من ps وlogs وconfig قبل التصحيح.
- أثبت كل تصحيح (إعادة تشغيل وdown/up واستعادة).
حاوية إدير تدور في وضع Restarting. أي منعكس يطبق اللوحة ؟
المنعكس : شخّص العرض وحدد السبب وطبق الإجراء المستهدف — لا تُعد التشغيل عشوائياً.