डॉकर कंटेनर से डॉकर होस्ट से कनेक्ट करना

मेरे पास एक सेटअप है जहां मैं अपनी वेबसाइट के सभी हिस्सों को डॉकर कंटेनरों में चलाता हूं । मेरा नगनेक्स जो पोर्ट 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      

डॉकर होस्ट पर मेरे आईपीटीबल्स इस तरह दिखते हैं:

root@Ubuntu-1204-precise-64-minimal /var/run # iptables -LChain INPUT (policy ACCEPT) target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHEDACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sshACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpsACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8000DROP       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,ESTABLISHEDChain OUTPUT (policy ACCEPT)target     prot opt source               destination         

कंटेनर के भीतर से, मैं आईपीटीबल्स कॉन्फ़िगरेशन के कारण होस्ट मशीन पर पोर्ट 3000 से कनेक्ट करने में असमर्थ हूं ।

मैं सार्वजनिक इंटरनेट के लिए पोर्ट 3000 नहीं खोलना चाहता ।

क्या पोर्ट 3000 पर कंटेनर और होस्ट के बीच एक सीधा पुल खोलने का कोई तरीका है?

या क्या मुझे डॉकर आईपी रेंज से स्वीकार करने के लिए अपने आईपीटेबल्स को संशोधित करना चाहिए?

आपको बस डॉकर की जरूरत है लिंक क्षमताओं [पदावनत]

बस उन सभी जटिल सामानों से छुटकारा पाएं जिन्हें आपने करने की कोशिश की थी और नामित कंटेनरों का उपयोग शुरू करें और फिर उन्हें एक दूसरे से लिंक करें ।

एलियास का जवाब सही है, लेकिन लिंक लंबा और भ्रमित करने वाला है । यहाँ एक सरल सारांश है:

सबसे पहले, कंटेनर को लिंक करने के लिए चलाएं, और इसे नाम दें:

sudo docker run -d --name db training/postgres

फिर दूसरे कंटेनर को चलाएं, इसे पहले कंटेनर से लिंक करें:

sudo docker run -d -P --name web --link db:db training/webapp python app.py

पहले कंटेनर से दूसरे कंटेनर में लिंक डाला गया है /etc/hosts. तो आप इसे होस्टनाम की तरह इस्तेमाल कर सकते हैं । उदाहरण के लिए:

sudo docker run --name web --link db:db training/webapp ping db