دوكر

دوكر يغلّف البرنامج مع كل ما يحتاجه في حزمة واحدة مغلقة، فيعمل على جهاز المبرمج تمامًا كما يعمل على الخادم الحقيقي.

يُعرف أيضًا بـ الحاويات حاويات البرمجيات تشغيل بالحاويات

التعريف

دوكر (Docker) يغلّف البرنامج مع كل ما يحتاجه للعمل، فالكود والإعدادات والأدوات الصغيرة التي تعمل تحته توضع كلها في حزمة واحدة مغلقة اسمها حاوية. تبني هذه الحزمة مرة واحدة، ثم تعمل بالطريقة نفسها على جهاز المبرمج وعلى خادم التجربة وعلى الخادم الحقيقي.

وقبل الحاويات كانت جملة «يعمل على جهازي» أغلى جملة في البرمجيات، لأن البرنامج يعمل بشكل سليم عند من كتبه ثم يتعطل على الخادم بسبب قطعة صغيرة تحته بنسخة مختلفة. والحاوية تنهي هذا الجدل لأنها تحمل نسخها الخاصة من كل شيء، فلا يبقى على الخادم ما يختلف معها.

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

وهناك أمران يفاجئان الناس، أولهما أن الحاوية تنسى. فعند إعادة تشغيلها تعود كما بُنيت تمامًا، ويختفي كل ما كُتب بداخلها من فواتير مرفوعة أو صور عملاء، ولهذا تُحفظ الملفات وقواعد البيانات خارج الحاوية عن قصد. والأمر الثاني هو العمر، لأن كل حاوية تُبنى فوق صورة أساس كتبها آخرون، والصورة التي نزّلتها قبل سنة تحمل كل ثغرة اكتُشفت فيها منذ ذلك الحين. وإعادة البناء فوق أساس حديث عمل عادي ضمن حماية الأنظمة وليست إضافة، ولهذا تعيد لينكي سوفت لنظم المعلومات بناء صور الأساس بجدول ثابت للأنظمة التي تتابعها، لأن أحدًا لا يتذكر فعل ذلك يدويًا.

أما المكسب الحقيقي فهو حرية الحركة، لأن الحاوية تحمل عالمها معها ويصبح تغيير شركة الاستضافة قرارًا لا مشروعًا. ولهذا نبني في لينكي سوفت كل تطبيق ويب بهذه الطريقة، فتكون النسخة التي جربناها هي نفسها التي تصل إلى العملاء لا نسخة أُعيد بناؤها. ويستطيع العميل بذلك أن يبدأ على خادم صغير في هوسترينا ثم ينتقل إلى خادم أكبر دون تعديل الكود. واسأل أي مورّد سؤالًا واحدًا قبل التوقيع: حين تُحذف الحاوية ويوضع غيرها، أين تبقى بياناتنا؟ فإن كانت الإجابة غامضة فهذه هي الإجابة.

أسئلة حول دوكر

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

ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟

أخبرنا بما تبنيه وسنجيبك بلغة واضحة.