العودة إلى الدورة

الدرس 14: أساسيات شبكات Docker

Docker من الصفر إلى الاحتراف: الدورة الشاملة لتغليف التطبيقات (Containerization) للمبتدئين

الدرس 14: أساسيات شبكات Docker

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

العزل من خلال مشغلات الشبكة (Network Drivers)

يستخدم Docker مشغلات الشبكة لإنشاء شبكات معزولة للحاويات. المشغلات الثلاثة الرئيسية هي:

  1. Bridge (الجسر) (افتراضي): الشبكة الأكثر شيوعاً. يمكن للحاويات المرفقة بنفس شبكة الجسر التواصل مع بعضها البعض باستخدام عناوين IP الداخلية أو أسماء الحاويات.
  2. Host (المضيف): يزيل عزل الشبكة؛ تشارك الحاوية مكدس شبكة الجهاز المضيف مباشرة (استخدم بحذر).
  3. None (لا شيء): يعطل الشبكات بالكامل للحاوية.

1. فحص الشبكات الافتراضية

تحقق من الشبكات الافتراضية المتاحة على جهازك:

bash docker network ls

سترى عادةً bridge, host, و none.

2. إنشاء شبكات Bridge مخصصة

بينما ترتبط الحاويات تلقائياً بشبكة bridge الافتراضية، يمكن للحاويات الموجودة على الجسر الافتراضي التواصل فقط عبر IP، وهو أمر مرهق. للحصول على اكتشاف خدمة أفضل (باستخدام أسماء الحاويات)، نقوم بإنشاء شبكة bridge مخصصة.

bash docker network create my_custom_network

فحص الشبكة التي تم إنشاؤها حديثاً

docker network inspect my_custom_network

3. ربط الحاويات بالشبكة

استخدم العلامة --network عند تشغيل الحاويات لربطها بشبكتك المخصصة.

مثال: تشغيل حاويتين على الشبكة المخصصة

الحاوية 1 (قاعدة البيانات):

bash docker run -d --name db_service --network my_custom_network postgres:15

الحاوية 2 (التطبيق):

bash docker run -d --name app_service --network my_custom_network python:3

يمكن للحاويات في my_custom_network الآن الوصول إلى بعضها البعض ببساطة عن طريق استخدام اسم الحاوية كاسم مضيف (على سبيل المثال، يمكن لـ app_service الوصول إلى db_service). هذا هو أساس التطبيقات متعددة الحاويات.