أوامر Docker الأساسية للتحكم: تشغيل، إيقاف، فحص، وحذف الحاويات
أوامر Docker الأساسية للتحكم بالحاويات
إدارة الحاويات ليست مجرد تنفيذ أمر لتشغيل تطبيق، بل هي جزء جوهري من هندسة التشغيل الحديثة داخل بيئات DevOps، وخطوط النشر CI/CD، وبنى الاستضافة السحابية. عندما تفهم أوامر التحكم الأساسية في Docker، تصبح قادراً على مراقبة دورة حياة الحاوية من لحظة إنشائها حتى حذفها بأمان.
إذا كنت قد قرأت سابقاً مقال ما هو DevOps؟ ولماذا تدفع الشركات ثروات لمهندسي الأتمتة السحابية؟ فستعرف أن التحكم الدقيق في الخدمات المصغرة عنصر أساسي في تقليل الأعطال وتحسين سرعة التسليم. كما أن مشكلة “الكود يعمل على جهازي فقط” وكيف يحلها Docker نهائياً؟ تشرح لماذا أصبحت الحاويات معياراً عملياً لتوحيد البيئات.
في هذا الدليل سنركز على أكثر الأوامر استخداماً في الحياة اليومية: التشغيل، الإيقاف، الفحص، والحذف. وسنربط كل أمر بسيناريوهات تشغيل حقيقية تخص الخوادم، الاختبارات المرحلية، والنشر الآلي.
قبل إدارة الحاويات: فهم سريع لدورة الحياة
الحاوية في Docker تمر غالباً بمراحل واضحة: إنشاء من صورة، تشغيل، توقف، ثم إزالة. هذا التسلسل مهم لأن بعض الأوامر تعمل على حاوية جارية، بينما أوامر أخرى تتطلب أن تكون الحاوية متوقفة أولاً.
إذا لم تكن قد أعددت البيئة بعد، فمن المفيد الرجوع إلى مقال تثبيت Docker وإعداد بيئة العمل على Linux و Windows. أما إذا كنت في أول تجربة عملية، فمقال أول حاوية (Container) لك: تشغيل سيرفر ويب Nginx بكلمة واحدة يقدم نقطة انطلاق ممتازة.
أهم مراحل دورة حياة الحاوية
- سحب الصورة باستخدام
docker pull. - إنشاء الحاوية وتشغيلها باستخدام
docker run. - متابعة حالتها عبر
docker psوdocker inspect. - إيقافها بشكل منضبط عبر
docker stop. - حذفها عند الانتهاء باستخدام
docker rm.
تشغيل الحاويات باستخدام docker run
الأمر docker run هو نقطة البداية الفعلية لتشغيل أي خدمة داخل حاوية. هذا الأمر ينشئ الحاوية من صورة ثم يشغلها مباشرة، ولذلك فهو يجمع بين مرحلتي الإنشاء والتنفيذ.
في بيئات الخوادم، يستخدم هذا الأمر لإطلاق تطبيقات ويب، خدمات خلفية، قواعد بيانات تجريبية، أو وكلاء بناء مخصصين داخل أنظمة CI/CD.
مثال عملي لتشغيل حاوية
docker run -d --name my-nginx -p 8080:80 nginx
هذا الأمر يعني ما يلي:
-dلتشغيل الحاوية في الخلفية.--nameلإعطاء اسم ثابت يسهل إدارته لاحقاً.-p 8080:80لربط منفذ من الخادم بالمنفذ الداخلي للحاوية.nginxهي الصورة المستخدمة.
إذا أردت فهم الصور نفسها، فارجع إلى مقال فهم صور دوكر (Docker Images) وكيفية سحبها وإدارتها لأن نجاح التشغيل يعتمد أساساً على فهم بنية الصورة والوسوم tags.
لا تستخدم الربط العشوائي للمنافذ في بيئات الإنتاج دون مراجعة سياسات الجدار الناري وطبقة
Security Groupsأوiptables. كشف منفذ غير مقصود قد يؤدي إلى تعريض خدمة داخلية للإنترنت مباشرة.
فحص الحاويات ومعرفة حالتها
بعد تشغيل الحاوية، تأتي مرحلة التحقق. في بيئات الإنتاج لا يكفي أن ينفذ الأمر بنجاح، بل يجب التأكد من أن الخدمة فعلاً تعمل، وأن تعيين المنافذ والبيئة وقيود الشبكة تمت كما هو متوقع.
عرض الحاويات الجارية
docker ps
أما لعرض جميع الحاويات، بما فيها المتوقفة:
docker ps -a
هذه الأوامر تمنحك نظرة سريعة على:
- معرف الحاوية
Container ID. - الصورة المستخدمة.
- الأمر الأساسي داخل الحاوية.
- مدة التشغيل أو وقت التوقف.
- المنافذ المرتبطة واسم الحاوية.
الفحص العميق باستخدام docker inspect
الأمر docker inspect يعرض بيانات تفصيلية بصيغة JSON حول الحاوية، مثل عنوان الشبكة الداخلي، المسارات المركبة، حالة العملية، والمتغيرات البيئية.
docker inspect my-nginx
من خلاله يمكنك التحقق من أمور معمارية شديدة الأهمية مثل:
- عنوان
IPالداخلي للحاوية. - نوع الشبكة المستخدمة
bridgeأو غيرها. - سياسات إعادة التشغيل
restart policy. - المجلدات المرتبطة من الخادم إلى الحاوية.
إيقاف الحاويات بأمان باستخدام docker stop
عند الحاجة إلى إيقاف خدمة، لا يُنصح دائماً باستخدام الإنهاء القسري. الأمر docker stop يرسل إشارة إيقاف منظمة للحاوية، ما يسمح للتطبيق بإنهاء الجلسات المفتوحة وكتابة البيانات المعلقة قبل التوقف.
docker stop my-nginx
في أنظمة الويب وقواعد البيانات الخفيفة، هذا السلوك مهم جداً لتفادي تلف البيانات أو انقطاع الطلبات النشطة. لذلك يعتبر graceful shutdown ممارسة تشغيلية أساسية.
متى تستخدم الإيقاف بدلاً من الحذف؟
- عند اختبار إعدادات تشغيل مؤقتة.
- عندما تريد إعادة تشغيل الحاوية لاحقاً دون إنشائها من جديد.
- أثناء عمليات الصيانة أو تغيير مسارات الشبكة.
- قبل جمع السجلات أو تحليل سبب فشل الخدمة.
في بيئات الإنتاج، إيقاف حاوية مرتبطة بخدمة خلف
Load Balancerيجب أن يسبقه إخراجها من مسار المرور أو تفعيل آلياتdrainلتجنب انقطاع المستخدمين أثناء الطلبات النشطة.
حذف الحاويات باستخدام docker rm
بعد توقف الحاوية وانتهاء الحاجة منها، يأتي دور الحذف. الأمر docker rm يزيل الحاوية من النظام، لكنه لا يحذف الصورة الأصلية. وهذا الفرق مهم لفهم كيفية إدارة المساحة وتكرار التشغيل بسرعة.
docker rm my-nginx
إذا حاولت حذف حاوية لا تزال تعمل، سيرفض Docker ذلك غالباً ما لم تستخدم خياراً قسرياً. ولهذا يكون التسلسل الآمن هو: إيقاف ثم حذف.
حذف حاوية مباشرة بعد التوقف التلقائي
في مهام الاختبار القصيرة أو الوظائف المؤقتة داخل pipelines، يمكنك تشغيل الحاوية مع الحذف التلقائي:
docker run --rm alpine echo "temporary task completed"
هذا النمط مفيد جداً في الأعمال المؤقتة مثل:
- تنفيذ فحص سريع على ملف.
- تشغيل أمر بناء قصير.
- اختبار اتصال شبكة داخلية.
- تنفيذ أدوات مساعدة دون ترك حاويات غير مستخدمة.
تسلسل عملي يومي لمهندس التشغيل
في الواقع العملي، غالباً ما يتم استخدام الأوامر السابقة كسلسلة مترابطة داخل جلسة إدارة واحدة. المثال التالي يلخص تسلسلاً منطقياً شائعاً أثناء اختبار خدمة جديدة على خادم تطوير أو عقدة بناء.
docker run -d --name demo-web -p 8080:80 nginx
docker ps
docker inspect demo-web
docker stop demo-web
docker rm demo-web
هذا التسلسل يعكس دورة عمل واضحة:
- تشغيل الخدمة.
- التحقق من أنها تعمل فعلاً.
- فحص إعداداتها الداخلية عند الحاجة.
- إيقافها بشكل منظم.
- تنظيف البيئة بعد انتهاء الاختبار.
أفضل الممارسات التشغيلية عند إدارة الحاويات
كلما اتسعت البنية، زادت أهمية الانضباط في تسمية الحاويات، تتبع المنافذ، وتوثيق سلوك الإيقاف والحذف. الفوضى في البيئات الصغيرة قد تكون مزعجة فقط، لكنها في البنى متعددة الخدمات قد تتحول إلى انقطاعات فعلية أو استنزاف للموارد.
- استخدم أسماء واضحة للحاويات بدلاً من الاعتماد على المعرفات العشوائية.
- راجع المنافذ المكشوفة دائماً قبل التشغيل على خادم عام.
- لا تترك حاويات متوقفة غير مستخدمة تتراكم لفترات طويلة.
- افحص بيانات الحاوية عبر
docker inspectعند تشخيص الأخطاء الشبكية أو مشاكل التخزين. - ادمج أوامر التنظيف والإيقاف ضمن سكربتات الأتمتة لتقليل الأخطاء البشرية.
في النهاية، إتقان أوامر docker run وdocker stop وdocker inspect وdocker rm يمنحك أساساً صلباً لإدارة الحاويات بثقة. هذه الأوامر ليست للمبتدئين فقط، بل هي أدوات يومية يعتمد عليها مهندسو المنصات والسحابة للحفاظ على الاستقرار، تقليل downtime، وضبط البيئات التشغيلية بكفاءة عالية.