كيف تعمل البرامج
كل حاوية ما هي إلا برنامج قيد التشغيل — وهو ما نسميه عملية (process). لكي تفهم Docker حقًا تحتاج إلى مجموعة صغيرة من الكلمات اليومية التي تصف كيف يعمل أي برنامج. نبدأ بماهية العملية، وإلى أين يذهب الناتج النصي للبرنامج (stdout، بينما تذهب الأخطاء إلى stderr)، وكيف يُبلّغ عن نجاحه أو فشله عند انتهائه
البرنامج قيد التشغيل يشبه موظفًا يجلس إلى مكتب: تصل الإعدادات إلى صندوق بريده الوارد (متغيرات البيئة)؛ ويكتب الملاحظات العادية على لوح أبيض مشترك يراه الجميع (stdout) والأخطاء على لوح أحمر منفصل (stderr)؛ وتصله الرسائل عبر فتحة بريد مرقّمة (منفذ port)؛ ويمكنك أن تربت على كتفه لتطلب منه أن يُنهي عمله (إشارة signal)؛ وعندما يغادر يُسلّم ورقة تقول 'كل شيء على ما يرام' (0) أو 'كانت هناك مشكلة' (قيمة غير صفرية) — وهذا هو رمز الخروج exit code.
- عملية
- برنامج قيد التشغيل حاليًا. الملف الموجود على القرص هو مجرد شيفرة تنتظر؛ وعند تشغيله، يُسمّى المثيل النشط في الذاكرة عملية (process). والحاوية هي في جوهرها عملية من هذا النوع.
- stdout / stderr
- قناتان يكتب البرنامج النص إليهما. stdout (المخرَج القياسي) هي قناة المخرجات العادية — الأشياء التي يريد البرنامج أن تراها. أما stderr فهي قناة منفصلة للأخطاء، لتتمكن من إبقاء رسائل الأعطال منفصلة عن المخرجات العادية.
- منفذ
- رقم يعمل كـ'باب مرقّم' تصل من خلاله برامج أو مستخدمون آخرون إلى برنامج قيد التشغيل. على سبيل المثال، عادةً ما يستمع خادم الويب على المنفذ 80 أو 8080، مثل فتحة بريد مرقّمة يعرف الجميع كيف يستخدمونها.
- إشارة
- رسالة قصيرة يرسلها نظام التشغيل إلى برنامج ليطلب منه شيئًا ما — غالبًا 'من فضلك توقف'. عندما تضغط Ctrl-C في الطرفية، تُرسَل إشارة توقف من هذا النوع، ويُغلق البرنامج حسن التصرف نفسه بطريقة نظيفة.
- متغير البيئة
- إعداد بصيغة name=value يُمرَّر إلى برنامج عند بدء تشغيله، دون تغيير شيفرته. هكذا يحصل البرنامج نفسه على إعدادات مختلفة في كل مكان — مثل كلمة مرور أو رقم منفذ port — دون المساس بالبرنامج ذاته.