निम्नलिखित कॉन्फ़िगरेशन परिवर्तन को डॉकर और शोरवेल मेजबान के बीच यातायात प्रवाह सुनिश्चित करना चाहिए। Shorewall 4.5.21.9 पर परीक्षण किया गया, लेकिन हाल के अधिकांश संस्करणों पर लागू होना चाहिए:
/etc/shorewall/shorewall.conf
सुनिश्चित करें कि आईपी अग्रेषण सक्षम है (अधिकांश कॉन्फिगर आइटम हाँ / नहीं हैं, लेकिन यह "ऑन" है):
IP_FORWARDING=On
/ Etc / shorewall / Masq
अपने निजी डॉकर नेटवर्क के लिए मास्किंगडिंग (NAT) सक्षम करें (यदि आप एक अलग नेटवर्क का उपयोग करते हैं, यानी आप docker को लॉन्च करते हैं --bip=#.#.#.#/#
, तो उसी के अनुसार)। eth0
बाहरी कनेक्टिविटी के साथ होस्ट मशीन पर किसी भी इंटरफ़ेस में बदलाव करें:
#INTERFACE:DEST SOURCE
eth0 172.17.0.0/16
/ Etc / shorewall / इंटरफेस
इंटरफ़ेस प्रविष्टि जोड़ें ताकि Shorewall जानता हो कि कौन सा इंटरफ़ेस dock
क्षेत्र से संबंधित है:
#ZONE INTERFACE OPTIONS
dock docker0
/ Etc / shorewall / जोनों
एक नया क्षेत्र बनाएं; ध्यान दें, docker
बहुत लंबा है और "अमान्य क्षेत्र नाम" त्रुटि का कारण होगा।
#ZONE INTERFACE
dock ipv4
/ Etc / shorewall / नीति
आप शायद डॉकटर कंटेनरों को मेजबान मशीन और इंटरनेट से बात करने की अनुमति देना चाहते हैं , इसलिए यह एक अच्छा प्रारंभिक बिंदु है:
#SOURCE DEST POLICY
# ...(other policies)...
dock all ACCEPT
# ...(other policies, catch-all)...
तुम भी एक ऐसी ही आवश्यकता हो सकती है ACCEPT
से यातायात के लिए नीति fw
को dock
अगर आप पहले से ही यह नहीं खुला था के साथ, fw
करने के लिए all
।
आप इसे आवश्यकतानुसार नीति या नियमों की फाइलों में कस सकते हैं । उदाहरण के लिए, उपरोक्त स्पष्ट रूप से आपके डॉकर कंटेनरों तक पहुंचने के लिए बाहरी यातायात की अनुमति नहीं देता है; उसके लिए अपने अन्य क्षेत्रों / नीतियों / नियमों की जाँच करें।
IP_FORWARDING=Yes
औरIP_FORWARDING=True
साथ ही काम करते हैं। मेरे पास कई प्रोडक्शन राउटर हैं, लेकिन आपका जवाब मेरे मुकाबले बहुत स्पष्ट है। अच्छा कार्य।