أراد أحد مستخدمي ZimaOS أن يكون لحاوية Docker عنوانها الخاص على شبكة LAN نفسها التي يوجد عليها الخادم. أوضحت IceWhale أن الشبكة الجسرية الافتراضية تمنح الحاوية عنوانًا داخليًا بالفعل، بينما يتطلب الحصول على عنوان ظاهر على شبكة LAN عادةً استخدام macvlan.
لم يؤكد صاحب المنشور الأصلي أن مثال الأمر الطويل الذي نشره المجتمع يعمل. وفي ردود لاحقة، اكتُشفت علامات اقتباس ذكية منسوخة وخيارات مسبوقة بشرطة واحدة، كما ظل مستخدم آخر غير قادر على إرفاق التطبيق المثبت. لذلك تشرح هذه الصفحة البنية والخطة الآمنة دون عرض كتلة الأوامر غير الموثقة هذه بوصفها وصفة لـ ZimaOS.
عنوان IP للجسر وعنوان IP لشبكة LAN هدفان مختلفان
| الوضع | هوية الحاوية | الوصول المعتاد |
|---|---|---|
| الجسر الافتراضي | عنوان Docker خاص | استخدم عنوان مضيف ZimaOS مع منفذ منشور |
| المضيف | تشارك مساحة أسماء شبكة المضيف | لا يوجد عنوان منفصل للحاوية |
| Macvlan | هوية خاصة بطبقة الوصلة وعنوان على شبكة LAN | يمكن لأجهزة شبكة LAN الأخرى الاتصال بها مباشرةً |
لا تحتاج معظم التطبيقات إلى عنوان IP منفصل على شبكة LAN. فالمنافذ المنشورة على مضيف ZimaOS أبسط وتتجنب متطلبات طبقة الوصلة الإضافية.
خطط لاستخدام Macvlan قبل إنشائه
- حدّد واجهة الشبكة الأصلية الفعلية المستخدمة لحركة مرور LAN.
- سجّل الشبكة الفرعية والبوابة.
- احجز عنوانًا خارج نطاق DHCP في الموجّه، أو أنشئ نطاقًا مُدارًا غير متداخل.
- تحقق مما إذا كان المحوّل أو جسر Wi‑Fi أو برنامج مراقبة الأجهزة الافتراضية أو محول USB للشبكة يسمح بعناوين MAC متعددة.
- أنشئ نسخة احتياطية من تعريف Compose للتطبيق، وتأكد من توفر وصول إلى وحدة التحكم المحلية.
تحذّر وثائق Docker الرسمية الخاصة بـ macvlan من أن حاويات macvlan لا يمكنها الاتصال بالمضيف مباشرةً افتراضيًا بسبب قيد في نواة Linux.
توقّع العزل بين المضيف والحاوية
قد تتمكن الأجهزة الأخرى على شبكة LAN من الوصول إلى الحاوية، بينما يتعذر على ZimaOS نفسه ذلك. وقد يؤدي هذا إلى تعطيل الوكلاء العكسيين أو فحوصات السلامة أو خدمات التخزين أو التطبيقات التي تتوقع الاتصال بالحاوية من المضيف. توثّق Docker خيارين متقدمين: إرفاق الحاوية بشبكة جسرية إضافية، أو إنشاء واجهة macvlan مطابقة على المضيف.
لماذا كانت الأوامر المنسوخة غير موثوقة؟
استخدم منشور المجتمع علامات اقتباس طباعية وشرطات طويلة بدلًا من علامات الاقتباس ASCII وخيارات الشرطتين. وقد أدى النسخ من Windows إلى الاحتفاظ بهذه الأحرف، مما تسبب في مشكلات في تحليل الصدفة وDocker. صحّح مشارك لاحق ذلك، لكنه ظل غير قادر على تشغيل تطبيق ZimaOS مثبت مسبقًا على الشبكة الجديدة.
كما أن الأوامر ثبّتت بيانات الشبكة مسبقًا وافترضت وجود واجهة أصلية معينة. وقد يؤدي تشغيلها على الشبكة الفرعية الخطأ إلى إنشاء تعارضات في العناوين أو قطع الوصول. لذلك استخدم أمثلة Docker الحالية، وعدّلها فقط بعد التحقق من كل قيمة.
هل يحصل Macvlan تلقائيًا على عنوان DHCP؟
تستخدم آلية macvlan المدمجة في Docker عادةً إدارة عناوين IP الخاصة بـ Docker، وليس طلب عقدة إيجار من الموجّه لكل حاوية. حدّد شبكة فرعية ونطاق عناوين IP آمنين، ثم عيّن العناوين أو اترك Docker يخصصها ضمن ذلك النطاق. لا تتداخل مع نطاق DHCP في الموجّه إلا إذا كان الموجّه يحجز تلك العناوين.
حدود واجهة ZimaOS في سلسلة المصدر
لم يعثر صاحب المنشور الأصلي على مفتاح واجهة رسومية يعمل لإرفاق تطبيق مثبت بشبكة macvlan، واقترح مستخدم آخر ذلك كطلب ميزة. قد يؤدي تصدير Compose وتحريره وإعادة استيراده إلى إنشاء حزمة مُدارة بشكل منفصل؛ وقد لا تعود الترقيات وعناصر التحكم في متجر التطبيقات تعمل كما في القالب الأصلي.
الأسئلة الشائعة حول عناوين IP لحاويات ZimaOS
هل تمتلك حاوية الجسر عنوان IP خاصًا بها بالفعل؟
نعم، لكنه يكون عادةً عنوانًا داخليًا في Docker وليس عنوانًا أساسيًا على شبكة LAN.
هل يستطيع ZimaOS الوصول مباشرةً إلى حاوية macvlan؟
ليس افتراضيًا. توثّق Docker عزل المضيف بوصفه قيدًا في النواة.
هل ينبغي أن أنسخ الأوامر من سلسلة المصدر؟
لا. فقد احتوت على أخطاء في الأحرف الطباعية، ولم يُؤكَّد أنها تمثل سير عمل ناجحًا لتطبيق ZimaOS.
