मेरे पास एक सेटअप है जहां मैं अपनी वेबसाइट के सभी हिस्सों को डॉकटर कंटेनरों में चलाता हूं। मेरा नाज़िनक्स जो पोर्ट 80 पर सुनता है और 443 एक कंटेनर में चलता है।
363292a98545 scivm/nginx-django-scivmcom:latest /usr/bin/supervisord 12 days ago Ghost 0.0.0.0:40001->22/tcp, 88.198.57.112:443->443/tcp, 88.198.57.112:80->80/tcp lonely_feynmann
मैं किसी अन्य कंटेनर में एक सेवा के लिए एक प्रॉक्सी सेट करना चाहता हूं। यह कंटेनर मेजबान पर 3000 बंदरगाह के लिए बाध्य है:
b38c8ef72d0a mazzolino/strider-dind:latest wrapdocker /usr/bin/ 41 minutes ago Up 41 minutes 0.0.0.0:3000->3000/tcp, 22/tcp, 27017/tcp distracted_einstein
डॉक होस्ट पर मेरे iptables इस तरह दिखते हैं:
root@Ubuntu-1204-precise-64-minimal /var/run # iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:8000
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
कंटेनर के भीतर से, मैं iptables कॉन्फ़िगरेशन के कारण होस्ट मशीन पर पोर्ट 3000 से कनेक्ट करने में असमर्थ हूं।
मैं सार्वजनिक इंटरनेट पर पोर्ट 3000 नहीं खोलना चाहता।
क्या पोर्ट 3000 पर कंटेनर और होस्ट के बीच सीधा पुल खोलने का कोई तरीका है?
या क्या मुझे अपने iptables को docker ip श्रेणी से स्वीकार करने के लिए संशोधित करना चाहिए?