ATM Logo
ATMATM Team

© 2026 ATM. جميع الحقوق محفوظة

عندما تحتاج حاوياتك للتواصل مع بعضها البعض (مقدمة إلى Docker Networking)

عندما تحتاج حاوياتك للتواصل مع بعضها البعض (مقدمة إلى Docker Networking)
Author's profile picture
algerian tech makers

4/30/2026

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

وهنا تبرز أهمية Docker Networking، كنظام متكامل لإدارة الشبكات داخل بيئة Docker، يسمح لحاوياتك بالتواصل بكفاءة وأمان، وفقاً لاحتياجات التطبيق.
يوفر Docker عدة أنواع من الشبكات لتلبية احتياجات مختلفة، من العزل التام إلى الوصول المباشر للشبكة الفيزيائية.
أنواع شبكات Docker:
  • Default Bridge - الشبكة الافتراضية البسيطة
  • User-Defined Bridge - شبكة مخصصة بمزايا إضافية
  • Host - الوصول المباشر لشبكة الخادم
  • MacVLAN: تجعل الحاويات تبدو كأجهزة مستقلة
  • IPVLAN - عناوين IP منفصلة باستخدام عنوان MAC مشترك
  • Overlay - للتواصل عبر خوادم متعددة
  • None -تمنع الحاوية من الوصول لأي شبكة (عزل تام)

Default Bridge Network (الشبكة الافتراضية)

عندما تشغل حاوية بدون تحديد شبكة معينة، Docker يضعها تلقائياً في الشبكة الافتراضية المسماة docker0.
ما تحصل عليه كل حاوية في هذه الشبكة:
  • واجهة Ethernet افتراضية خاصة بها
  • عنوان IP خاص
ملاحظة: لا يمكن للحاويات في هذه الشبكة الوصول إلى بعضها عبر الأسماء (DNS) بشكل افتراضي، وإنما باستخدام عناوين IP فقط، ما لم يتم تهيئة ذلك يدوياً.
# لعرض الشبكات المتاحة

# تشغيل حاوية (بدون تحديد شبكة)
# فحص الشبكة الافتراضية
كيف يعمل التواصل:
  • الحاويات في نفس الشبكة الافتراضية يمكنها التحدث مع بعضها
  • يمكنها الوصول للإنترنت: حاوية → bridge → خادم → إنترنت
  • من خادمك لا يمكنك الوصول مباشرة لمنافذ الحاوية (عزل) إلا إذا سمحت بذلك

User-Defined Bridge Network (شبكة مخصصة)

مثل الشبكة الافتراضية تماماً، لكن هذه المرة أنت من ينشئها. إنشاء شبكتك الخاصة يوفر مزايا رائعة:
المزايا:
  • حل أسماء النطاقات (DNS) التلقائي بين الحاويات
  • عزل أفضل وتسمية واضحة
  • تحكم أكبر في الإعدادات
# إنشاء شبكة مخصصة

➜  ~ docker network create my-network2
# عرض الشبكات (ستجد شبكتك الجديدة)

➜  ~ docker network ls                                                 
NETWORK ID     NAME             DRIVER    SCOPE
d720a3092fe2   MacVLANNetwork   macvlan   local
4c7c3a8ddff5   bridge           bridge    local
c650a15753be   host             host      local
4d8c79859579   my-network       bridge    local
fa86ef00c648   none             null      local
# تشغيل حاويتين في الشبكة المخصصة

➜  ~ docker run -itd --rm --network my-network --name container4 app:v1
➜  ~ docker run -itd --rm --network my-network --name container5  app:v1
# الآن container4 يمكنها الوصول لـ container5 باستخدام الاسم مباشرة!
➜  ~ docker exec -it container4 sh
الفرق الأساسي: في الشبكة المخصصة، يمكن للحاويات التحدث مع بعضها باستخدام أسمائها مباشرة بدلاً من عناوين IP!

Host Network (شبكة الخادم)

شبكة الخادم تعطي حاويتك وصولاً كاملاً لشبكة خادمك.
الخصائص:
  • لا توجد حاجة لتعيين منافذ (port mapping)
  • سهل التنفيذ لكن بدون عزل
  • الحاوية تشارك كل شيء مع الخادم: IP، منافذ، كل شيء!
# تشغيل حاوية مع شبكة الخادم


➜  ~ docker run -itd --rm --network host --name container6 app:v1
متى تستخدمها: عندما تحتاج وصولاً مباشراً بدون تعقيدات الـ NAT أو تعيين المنافذ - مثل خوادم VPN.
تحذير: لا توجد عزلة، لذا استخدمها بحذر!

MacVLAN Network

MacVLAN تجعل حاوياتك تبدو كأجهزة فيزيائية منفصلة على شبكتك الحقيقية.
كل حاوية تحصل على:
  • عنوان IP خاص بها على شبكتك المحلية (LAN)
  • عنوان MAC خاص بها (مثل جهاز حقيقي)
# إنشاء شبكة macvlan

➜  ~ docker network create -d macvlan \                                
--subnet 10.7.1.0/24 \
--gateway 10.7.1.3 \
-o parent=enp0s31f6 \
MacVLANNetwork
الفرق:
  • الطريقة العادية: حاوية → Bridge → خادم → إنترنت
  • مع MacVLAN: حاوية → (مباشرة إلى) الشبكة المحلية
تنبيه: قد تحتاج لتفعيل "promiscuous mode" على network switch.

IPVLAN Network

IPVLAN يسمح لحاوياتك بالحصول على عناوين IP منفصلة لكن تشارك نفس عنوان MAC الخاص بالخادم.
كل حاوية تحصل على:
  • عنوان IP خاص بها على الشبكة
  • تستخدم نفس عنوان MAC الخاص بالخادم
# إنشاء شبكة ipvlan


➜  ~ docker network create -d ipvlan \                                 
--subnet 10.7.1.0/24 \
--gateway 10.7.1.3 \
-o parent=enp0s31f6 \
ipVLANetwork

المزايا:
  • يعمل في وضعين: Layer 2 و Layer 3
  • مثالي عندما لا تسمح الشبكة بعناوين MAC متعددة
  • يعيد استخدام عنوان MAC الخادم لكن يعطي كل حاوية IP منفصل

Overlay Network (للشبكات الموزعة)

شبكة Overlay تسمح للحاويات التي تعمل على خوادم مختلفة بالتحدث مع بعضها كأنها على نفس الشبكة.
متى نحتاجها:
  • في الإنتاج، عندما يكون لديك عدة خوادم
  • مع أدوات مثل Docker Swarm أو Kubernetes
  • لإدارة الكثير من الحاويات الموزعة

None Network (بدون شبكة)

شبكة "None" تعني عدم وجود اتصال شبكي على الإطلاق للحاوية.
إنها مثل وضع الحاوية في صندوق بدون إنترنت، بدون شبكة محلية... لا شيء.
# تشغيل حاوية بدون شبكة

➜  ~ docker run -d --name isolated --network none alpine
متى تستخدمها:
  • الخيار الأكثر أمانا
  • غالباً للاختبار أو البيئات عالية الأمان
  • عندما تريد عزلاً تاماً

الأوامر الشائعة التي ستستخدمها:

docker network ls         # عرض جميع الشبكات
docker network create my-network     # إنشاء شبكة جديدة
docker network inspect bridge       # فحص تفاصيل شبكة معينة
docker network rm my-network        # حذف شبكة
Docker Networking ليس مجرد وسيلة لربط الحاويات، بل هو حجر الأساس في تصميم أنظمة موزعة وآمنة وقابلة للتوسع. اختيار نوع الشبكة المناسب يعتمد على:
  • مستوى الأمان المطلوب.
  • عدد وتعقيد الخدمات.
  • هل يعمل التطبيق على خادم واحد أم عدة خوادم.
  • متطلبات الأداء والوصول.
تذكّر:
إتقان إدارة الشبكات في Docker يمكّنك من بناء تطبيقات قوية، مستقرة، وجاهزة للإنتاج الحقيقي.


عندما تحتاج حاوياتك للتواصل مع بعضها البعض (مقدمة إلى Docker Networking)