دورة حياة الحاوية: الإيقاف والحذف
في الدرس السابق شغّلنا حاوية في الخلفية وقرأنا مخرجاتها. هذه المرة نركّز على فكرة واحدة: كيف نُوقف حاوية بشكل نظيف ثم ننظّفها. نتعلّم docker stop، الذي يُرسل SIGTERM أولاً — إشارة مهذّبة تعني 'من فضلك أنهِ عملك'، من التمهيد — وينتظر فترة سماح، وعندها فقط يُجبرها SIGKILL على التوقف. نتعرّف على حالات
الإيقاف والحذف يشبهان إطفاء جهاز ثم التخلّص منه: docker stop يطلب من الجهاز أن يُنهي عمله بلطف قبل أن ينطفئ، لكنه لا يزال موضوعاً على الرفّ مُطفأً — و docker rm وحده هو ما يُنزله فعلاً عن الرفّ ويُحرّر المكان.
- SIGTERM
- إشارة مهذّبة تعني 'من فضلك أنهِ' تُرسَل إلى العملية الرئيسية للحاوية عند docker stop، وتمنحها وقتاً لإغلاق الاتصالات وحفظ الحالة قبل التوقف. (الإشارة هي رسالة قصيرة يُرسلها نظام التشغيل إلى عملية — من التمهيد.)
- SIGKILL
- إشارة تُسقط العملية فوراً دون إمكانية الرفض. docker stop يُرسلها فقط إذا لم تُنهِ العملية نفسها بنفسها حتى نهاية فترة السماح بعد SIGTERM.
- حالة Exited
- حاوية انتهت عمليتها. لم تعُد قيد التشغيل لكنها لا تزال موجودة: docker ps -a لا يزال يُدرجها مع كود الخروج الخاص بها، حتى يحذفها docker rm.