كيف يعمل بالضبط؟
Docker يعمل مع الحاويات (Containers). إنه ببساطة أداة لإدارة الحاويات. لكن ما هي الحاوية؟ إنها ببساطة مثال قيد التشغيل من تطبيقك.
لذا Docker يقوم بإعداد بيئة تطبيقك ويضعها في تلك الحاوية. وها أنت ذا! إذا كانت تلك الحاوية تعمل بسلاسة على جهازك، يمكنك أن تضمن تماماً أنها ستعمل بسلاسة على أي جهاز آخر!
لنفهم الحاويات بشكل أعمق!
يمكنك التفكير في الحاوية كصندوق يحتوي على كل شيء يحتاجه تطبيقك للعمل: من الكود المصدري إلى ملفات التكوين.
هذا الصندوق يشغل تطبيقك في عزلة تامة عن باقي نظامك. لا يهم أي إصدار من Node.js أو Python مثبت على جهاز الكمبيوتر الخاص بك. الحاوية تأتي مع بيئتها الخاصة، مما يجعل التطبيق قابلاً للتنبؤ ومتسقاً وقابلاً للنقل عبر أجهزة مختلفة.
كل ما تحتاجه أنت أو أي شخص آخر لتشغيل هذه الحاوية هو Docker. هذا يعني:
- لا توجد تضارب في الإعداد
- لا توجد صداع التبعيات
- نشر أسرع وأنظف
قد تتساءل: لماذا لم نستخدم virtual machines فقط؟
الإجابة بسيطة - الأجهزة الافتراضية ثقيلة جداً! إذا كنت تشغل تطبيقات متعددة، فإن كل واحد منها يحتاج إلى جهاز افتراضي منفصل، لذا يستهلك الكثير من الموارد وبسبب ذلك، قد ينخفض الأداء.

تقول لي: "حسناً، أفهم كل ذلك، لكن كيف نصنع حاوية !؟"
هنا المفتاح السري: Docker Images
ما هي صور Docker؟
صورة Docker هي النسخة الثابتة من تطبيقك تتكون من عدة طبقات، مع كل طبقة تحتوي على أشياء محددة:
- التكوينات configuration files
- التبعيات dependencies
- الكود المصدري source code
- الصورة الأساسية (نظام التشغيل الأساسي) parent image
يمكنك التفكير فيها هكذا:
الصورة (Image) =
- المخطط الثابت الذي لا يفعل شيئاً سوى الاحتفاظ بالإعداد
الحاوية (Container) =
- المثيل قيد التشغيل من صورتك
لذا نحن نبني صورا تحتوي على كل الإعداد الذي نحتاجه لتطبيقنا للعمل، وعندما ننشرها، نحصل على حاويتنا - المثيل قيد التشغيل من تطبيقنا.
عندما ننشر/نشغل حاويتنا، تأتي في شكل عملية في نظامك - عملية معزولة تبدو وكأنها تعمل على جهاز آخر.

ما التالي؟
في القسم التالي، سنرى كيف يمكننا بناء صور Docker باستخدام شيء يسمى Dockerfile. ابقوا متابعين لذلك.
كخلاصة يمكننا القول أن Docker غير عبارتنا من "إنه يعمل على جهازي!" إلى "اصنعه مرة واحدة وشغله في أي مكان!"
