‫لذلك في هذه
‫المحاضرة ، دعونا نجري مناقشة سريعة حول ما يحدث بالفعل في الخلفية عندما نقوم بتشغيل أمر Docker
‫container run.
‫هناك اعتقاد خاطئ في بعض الأحيان بأن Docker يقوم بالفعل بتشغيل الحاويات وهذه وظيفتها
‫الرئيسية.
‫ولكن في الواقع ، هناك الكثير مما يحدث في الخلفية وهو يحدث بالإضافة إلى تلك الحاويات
‫التي تنفذ الأوامر.
‫عندما نكتب docker container run ، في الخلفية سيبحث بالفعل عن الصورة التي حددناها
‫في نهاية هذا الأمر.
‫تتذكر عندما كتبنا nginx في النهاية ، كان هذا هو اسم الصورة التي أردنا تشغيلها
‫كحاوية جديدة.
‫لذلك سيبحث عن ذلك محليًا في ذاكرة التخزين المؤقت للصور. إذا لم يتم العثور عليه هناك ، فسوف ينتقل
‫إلى Docker Hub ، وهو مستودع الصور البعيد الافتراضي الخاص به.
‫بشكل افتراضي ، سيبحث عنه هناك ويقوم بتنزيله وتخزينه في ذاكرة التخزين المؤقت للصور.
‫لذا ، إذا لم نحدد إصدارًا - ولم نقم بكتابة nginx - يمكنك بالفعل
‫كتابة nginx colon بعض الإصدارات - وسنتناول ذلك في القسم التالي - ولكن بدون تحديد
‫إصدار ، سيختار فقط الأحدث.
‫بعد ذلك ، بمجرد الحصول على تلك الصورة وجاهزة للانطلاق ، ستبدأ حاوية جديدة بناءً على تلك الصورة.
‫لن تقوم بعمل نسخة من الصورة.
‫في الواقع ، ستبدأ طبقة جديدة من التغييرات ، أعلى المكان الذي توقفت فيه تلك الصورة تمامًا
‫، وستقوم بتخصيص الشبكة.
‫سيعطيه عنوان IP افتراضيًا محددًا داخل شبكة Docker الافتراضية. إنه في الواقع سيفتح المنفذ
‫الذي حددناه. إذا لم نحدد أمر النشر ، فإن --publish
‫، فلن يفتح أي منافذ على الإطلاق.
‫نظرًا لأننا فعلنا 80:80 ، فهذا يخبرها أن تأخذ المنفذ 80 على المضيف وإعادة توجيه
‫كل هذه الحركة إلى المنفذ 80 في الحاوية. ثم ستبدأ هذه الحاوية أخيرًا في استخدام الأمر
‫المحدد في Dockerfile ، والذي سيتحدث أيضًا عن القسم التالي.
‫يمكنك بالفعل تغيير غالبية هذه الأوامر من سطر الأوامر.
‫هذه كلها بالفعل افتراضات.
‫يمكننا في الواقع تحديد نسخة صورتنا.
‫يمكننا تحديد منافذ مختلفة أو الأمر الافتراضي للتشغيل عند بدء تشغيل تلك الحاوية.
‫ولكن نظرًا لأن لدينا أمرًا بسيطًا للغاية ، فقد استخدم الكثير من الإعدادات الافتراضية الخارجة من الصندوق.
‫كما ترون ، بالتأكيد الكثير يحدث في الخلفية.
‫ولاحقًا ، سوف نتعمق في كل قسم من هؤلاء في أقسام منفصلة.