باستخدام حاوية عامل الميناء و إعادة توجيه المنفذ يقوم عامل الميناء بإعداد قواعد/سلاسل إيبتبلس الخاصة به والتي سيتم قتلها إذا تم إعادة تشغيل شوروال. لذلك سوف تصبح الحاوية غير قابل للوصول.
هل تمكن أي شخص من حفظ / استعادة قواعد عامل الميناء عند إعادة تشغيل شوروال أو هل لدى أي شخص حل آخر?
يجب أن تضمن تغييرات التكوين التالية تدفق حركة المرور بين عامل الميناء ومضيف شوروال. تم اختباره على شوروال 4.5.21.9 ولكن يجب أن ينطبق على أحدث الإصدارات:
/ الخ / شوروال / شوروال.أسيوط
تأكد من تمكين إعادة توجيه إب (معظم عناصر التكوين هي نعم / لا، ولكن هذا واحد هو"على"):
IP_FORWARDING=On
/ الخ / شوروال / ماسك
تمكين التنكر (نات) لشبكة عامل الميناء الخاصة بك (إذا كنت تستخدم شبكة مختلفة، أي إطلاق عامل الميناء مع --bip=#.#.#.#/#، ثم تغيير وفقا لذلك). التغيير eth0 إلى أي واجهة على الجهاز المضيف مع اتصال خارجي:
#INTERFACE:DEST SOURCEeth0 172.17.0.0/16
/ الخ / شوروال / واجهات
إضافة إدخال واجهة حتى شوروال يعرف أي واجهة dock المنطقة تتعلق:
#ZONE INTERFACE OPTIONSdock docker0
/ الخ / شوروال / المناطق
إنشاء منطقة جديدة ؛ ملاحظة, docker طويل جدا وسيسبب خطأ" اسم منطقة غير صالح".
#ZONE INTERFACEdock ipv4
/ الخ / شوروال / السياسة
ربما تريد السماح لحاويات عامل الميناء بالتحدث إلى الجهاز المضيف و الإنترنت ، لذلك هذا هو نقطة انطلاق جيدة:
#SOURCE DEST POLICY# ...(other policies)...dock all ACCEPT# ...(other policies, catch-all)...
قد تحتاج أيضا مماثلة ACCEPT سياسة المرور من fw إلى dock، إذا لم تفتحه بالفعل مع fw إلى all.
يمكنك تشديد هذا الأمر كذلك في السياسة أو القواعد الملفات حسب الحاجة. على سبيل المثال ، لا يسمح ما سبق صراحة لحركة المرور الخارجية بالوصول إلى حاويات عامل الإرساء ؛ تحقق من المناطق/السياسات/القواعد الأخرى لذلك.
منذ قدم عامل الميناء ميزة عزل الشبكة، والحلول الأخرى المذكورة هنا لم تعد كافية إذا كنت ترغب في استخدام شبكات مخصصة. شوروال 5.0.6 يدخل دعم عامل الميناء بما في ذلك شبكات عامل الميناء. هذا:
يسمح شوروال وعامل الميناء أن تبدأ / توقف / إعادة تشغيل في أي أمر
يتجنب الحاجة إلى الحفاظ على البرنامج النصي التمديد
يمكنك التأكد من أن مجموعة قواعد عامل الميناء ينجو من إعادة تشغيل شوروال عن طريق إنشاء البرامج النصية التمديد الذي حفظ DOCKER سلسلة قبل إعادة التشغيل ، ومن ثم استعادته مرة أخرى بعد ذلك. لقد وضعت للتو وظيفة مع مثال على كيفية القيام بذلك، على الرغم من أنني متأكد من أنها بعيدة كل البعد عن الطريقة الوحيدة الممكنة.
فقط أحسب ذلك على صندوقي. تأكد / الخ / شوروال.أسيوط لديها:
IP_FORWARDING=Yes
عامل الميناء يعتمد على إعادة التوجيه ، وأنا متباعدة أن 'دمية' يضعها على 'لا' على جميع الخوادم الخاصة بي.
تحديث: ربما تحتاج أيضا إلى تنكر حركة المرور القادمة من عامل الميناء من واجهة وان الخاص بك.
تحرير /etc/shorewall/masq وسوف تحتاج إلى خط مماثل ل:
br0 172.17.0.0/12
في هذه الحالة ، واجهة وان بلدي هو في الواقع بر 0 (جسر) ، ولكن لك ربما يكون شيئا مثل إيث0. (استخدام ifconfig لرؤية الواجهات الخاصة بك وعناوين إب الخاصة بهم). على جهاز عامل الميناء يستخدم 172.17.0.0 / 24 وهو نطاق عنوان خاص رفك 1918. قد يختلف هذا على أنظمة أخرى ، ولكن يمكنك رؤية النطاق باستخدام ifconfig مرة أخرى للبحث عن واجهة docker0.
يمكن إعادة تشغيل خدمة عامل الميناء دون التأثير على الحاويات قيد التشغيل ، ويمكن تشغيلها بعد إعادة تشغيل شوروال لإعادة تحميل قواعد محددة عامل الميناء. من الواضح أنه سيكون هناك وقت قصير حيث يتم تعطيل الشبكات إلى الحاوية (الحاويات).
وهذا صحيح على الأقل على بلدي عدد قليل من تثبيت ارشلينوكس.