‫في هذه المحاضرة ، تحتاج إلى فهم بعض المفاهيم السابقة حول الشبكات وأيضًا حول
‫إنشاء الحاويات.
‫الآن بعد أن فهمنا مفاهيم شبكات Docker وكيف تعمل جميع الشبكات الافتراضية
‫وعناصر IP ، فلنلقِ نظرة على بعض خيارات سطر الأوامر لإدارتها.
‫أولاً ، هناك شبكة ls الواضحة. نظرًا لأنه يمكننا إنشاء شبكات متعددة ، فلدينا بالتأكيد أمر
‫ls لإدراجها في القائمة.
‫لدينا أمر الفحص المعتاد الذي ربما تعودت عليه الآن من جميع عمليات التفتيش الأخرى التي
‫نقوم بها.
‫سيُظهر لنا ذلك تفاصيل حول شبكة معينة.
‫ثم لدينا أمر إنشاء يحتوي على برنامج تشغيل اختياري يمكننا تحديده لاستخدام برامج التشغيل
‫المضمنة والجهات الخارجية لإنشاء شبكة افتراضية جديدة.
‫ثم لدينا أوامر الاتصال وفصل الاتصال لتغيير حاوية قيد التشغيل المباشر بحيث يتم إنشاء بطاقة واجهة
‫شبكة جديدة على شبكة افتراضية لتلك الحاوية.
‫إنه يشبه إلى حد ما لصق بطاقة شبكة في جهاز كمبيوتر أثناء تشغيله.
‫حسنا هيا بنا.
‫لذا عد إلى سطر الأوامر الخاص بي. من خلال الأخذ بالمفاهيم التي تعلمناها للتو ، يمكنني
‫في الواقع عمل شبكة لرسو السفن. هذا يظهر لي جميع الشبكات التي تم إنشاؤها. في هذه الحالة ، عندما تقوم بتشغيل نفس الأمر
‫، فمن المحتمل أن ترى نفس الثلاثة. اعتمادًا على نظام التشغيل
‫الخاص بك وإصدار Docker ، قد ترى شبكة الجسر تسمى docker0 أو bridge
‫، لكن كلاهما يعني نفس الشيء. وهي الشبكة الافتراضية التي تربط عبر جدار حماية NAT بالشبكة
‫الفعلية التي يتصل بها مضيفك. حتى الآن ، لم يكن لدينا ما يدعو للقلق بشأن
‫ذلك لأن جميع حاوياتنا قد ارتبطت للتو بهذه الشبكة وعملت.
‫الآن بعد أن أصبح لدينا حاوية Nginx قيد التشغيل ، إذا قمت بفحص شبكة عامل إرساء ، شبكة الجسر ، فسترى في الواقع أنها
‫تسرد الحاويات المتصلة بتلك الشبكة. سترى أن Nginx ، الذي أطلقنا عليه
‫اسم مضيف الويب ، مرفق هناك.
‫يمكنك بالفعل رؤية عنوان IP الخاص به. وسترى هنا أن هذه الشبكات تقوم تلقائيًا بتعيين عناوين IP ، وهي تظهر
‫لك هنا مع تهيئة IPAM التي يتم تعيين الشبكة الفرعية فيها افتراضيًا على 172. 17 ، وهي عادةً الشبكة الافتراضية
‫لأي مضيف Docker.
‫ولكن يمكن تغييرها ، ثم بوابة هذه الشبكة التي ستوجه في النهاية إلى الشبكة
‫الفعلية.
‫إذا عدنا إلى شبكة docker ls ، يمكننا رؤية هاتين الشبكتين الأخريين. الشبكة المضيفة هي ما تحدثنا
‫عنه من قبل وهي شبكة خاصة تتخطى الشبكة الافتراضية لـ Docker وتربط الحاوية
‫مباشرة بواجهة المضيف.
‫كما يمكنك أن تتخيل ، هناك إيجابيات وسلبيات لذلك لأنه يمنع الحدود
‫الأمنية للحاوية من حماية واجهة تلك الحاوية.
‫ولكنه أيضًا ، في مواقف معينة ، يمكنه تحسين أداء الشبكات عالية الإنتاجية والتغلب على
‫بعض المشكلات الأخرى المتعلقة ببرامج خاصة معينة.
‫ثم لدينا آخر واحد من لا شيء ، وهو ما يعادل نوعًا ما وجود واجهة على جهاز الكمبيوتر
‫الخاص بك غير مرتبطة بأي شيء ، ولكن يمكننا إنشاء واجهة خاصة بنا.
‫لنقم بإنشاء شبكة Docker ... إنشاء my_app_net.
‫الآن سنقوم
‫بعمل شبكة عامل إرساء مرة أخرى. ستلاحظ أنه أنشأ شبكتي الافتراضية الجديدة مع سائق الجسر.
‫وذلك لأن هذا هو المحرك الافتراضي.
‫إنه برنامج تشغيل بسيط يقوم ببساطة بإنشاء شبكة افتراضية محليًا بشبكته الفرعية
‫الخاصة في مكان ما حول 172. 17 وما فوق ، لأنها ستزداد كما هي. إذن ، 17 ، ثم 18 ، 19 ، 20 وما إلى ذلك.
‫لا يحتوي على أي من الميزات المتقدمة التي قد نراها لاحقًا في هذه
‫الدورة ، مثل الشبكات المتراكبة التي تسمح بالشبكات الخاصة بين المضيفين وبرامج تشغيل الطرف الثالث مثل Weave.
‫إذا نظرت إلى أمر إنشاء شبكة عامل الإرساء مع المساعدة ، فسترى أنه يمكنني تحديد ليس فقط برنامج التشغيل
‫الذي أريد استخدامه ، ولكن الكثير من خيارات IP والشبكة التي قد تحتاجها
‫في سيناريو متقدم.
‫يمكننا القيام بالعديد من الأشياء مع هذه الشبكات وكيف نربطها بحاوياتنا.
‫يمكننا استخدام خيار --network عندما نقوم بإنشاء حاوية.
‫لذلك ، تقوم حاوية عامل الإرساء بتشغيل
‫اسم nginx الجديد ، ثم الشبكة ، ثم صافي التطبيق الخاص
‫بي ، ثم صورة nginx.
‫إذا قمنا بفحص شبكة عامل ميناء على شبكة التطبيقات الخاصة بي ، فسترى أن Nginx الجديد الذي أنشأته للتو موجود الآن
‫على تلك الشبكة. له عنوان IP جديد هو 172. 18.
‫إذن فهي الشبكة الفرعية التالية في القائمة.
‫لكن لا يتعين علينا في الواقع بدء حاويات جديدة ، لأنه تمامًا كما هو الحال في العالم
‫الحقيقي حيث يمكنك فصل أجهزة Ethernet وإعادة توصيلها وإعادة الاتصال بالشبكات اللاسلكية ، يمكنك أيضًا فعل الشيء
‫نفسه مع الشبكات الحالية والحاويات الموجودة.
‫لهذا ، نستخدم خيارات الاتصال وفصل شبكة عامل الإرساء ويمكنك استخدام - help لرؤية
‫جميع الخيارات هناك لشبكة Docker.
‫في هذه الحالة ، ما نريد القيام به هو شبكة عامل إرساء ، ونريد أن نأخذ الحاوية الحالية التي
‫أنشأناها أولاً وتوصيلها بشبكتنا الجديدة.
‫سأختار شبكة التطبيقات الجديدة الخاصة بي ، وبعد ذلك سأختار مضيف الويب الأصلي الذي أنشأناه.
‫الآن إذا قمت بفحص حاوية عامل إرساء لمضيف الويب الأصلي الخاص بي ، فسترى أنه في الواقع موجود
‫الآن على شبكتين. شبكة الجسر الأصلية ، وقمت
‫بشكل أساسي بما يكافئ إعطائها واجهة Ethernet جديدة على شبكة مختلفة ، مع
‫عنوان IP مختلف تم استلامه من DHCP.
‫لذلك نحن الآن على شبكة 17 في شبكة 18.
‫إذا أردت فصل ذلك ، يمكنني أن أفعل الشيء نفسه بمجرد قطع الاتصال. ثم إذا عدت وقمت بالتفتيش مرة أخرى
‫، سترى أنه عاد الآن بشبكة واحدة فقط.
‫كما ترى ، هناك الكثير من الخيارات المثيرة للاهتمام لشبكات Docker والهدف النهائي هنا حقًا ، وأحد الأشياء
‫التي أحب التباهي بها مع الحاويات ، هو أنك إذا كنت تقوم بتشغيل جميع التطبيقات على خادم واحد
‫، في هذه الحالة ، يمكنك حقًا حمايتهم. لأنه في العالم المادي حيث كنا ننشئ
‫أجهزة افتراضية ومضيفين في شبكة ، غالبًا ما نعرض المنافذ والشبكات على خوادم التطبيقات لدينا
‫بشكل مفرط.
‫في هذه الحالات ، إذا كنت ستأخذ حاويات التطبيقات الخاصة بك وجعلها جميعًا
‫في شبكة واحدة معًا في شبكة افتراضية ، فستقوم فقط بتعريض المنافذ الموجودة على مضيفك
‫التي تستخدم -p على وجه التحديد معها. وكل شيء آخر أكثر أمانًا قليلاً مع جدار الحماية المحمي هذا داخل
‫شبكتهم الافتراضية.
‫في وقت لاحق ، عندما نصل إلى Docker Swarm ، سنتعرف بالفعل
‫على الشبكات متعددة المضيفات وكيف يتحسن هذا عندما نبدأ في التوسع والتوسع.
‫للتلخيص ، لقد غطينا للتو مجموعة من الأوامر لإدارة شبكات Docker.
‫لقد تلاعبنا بأوامر ls و check ، وأنشأنا شبكة Docker ، واستخدمنا المحرك الافتراضي
‫للجسر.
‫لم نكن بحاجة في الواقع إلى استخدام - سائق.
‫وأخيرًا ، جربنا اتصال الشبكة وأوامر قطع الاتصال بالشبكة لإضافة بطاقة واجهة شبكة (NIC) ثم إزالتها
‫من حاوية قيد التشغيل.