डॉकर कंटेनरों को उनके नाम से एक दूसरे को देखने की अनुमति कैसे दें?

मेरे पास एक कंटेनर में चलने वाला एक मोंगो उदाहरण है mongo1 इसने पोर्ट 27017 को उजागर किया है । मैं मेजबान से ठीक कनेक्ट कर सकता हूं ।

मेरे पास एक और कंटेनर है जो एक एप्लिकेशन चला रहा है जो मोंगो इंस्टेंस से कनेक्ट करना चाहता है ।

मैं 2 कंटेनरों को कैसे जोड़ सकता हूं ताकि होस्टनाम mongo1 दूसरे कंटेनर के संपर्क में है और यह इससे जुड़ सकता है mongo1:27017 ?

क्या हो रहा था कि डिफ़ॉल्ट डॉकर नेटवर्क अनुमति नहीं देता है name >> DNS मैपिंग।

डिफ़ॉल्ट ब्रिज नेटवर्क पर कंटेनर केवल आईपी पते द्वारा एक दूसरे तक पहुंच सकते हैं, जब तक कि आप --लिंक विकल्प का उपयोग नहीं करते हैं, जिसे विरासत माना जाता है । उपयोगकर्ता-परिभाषित ब्रिज नेटवर्क पर, कंटेनर एक दूसरे को नाम या उपनाम से हल कर सकते हैं ।

इसलिए मैंने एक नया नेटवर्क बनाया:

docker network create -d bridge br0

और फिर उस नेटवर्क में कंटेनर जोड़े:

docker network connect br0 mongo1docker network connect br0 wiki

अब वे एक दूसरे को अपने नाम से देख सकते हैं ।

मौजूदा कंटेनरों के लिए (अस्थायी समाधान के रूप में)

docker inspect <mango_container_name> | grep IPAddress

और edite/जोड़ें /etc/hosts कंटेनर के अंदर

docker exec -it -u 0 <app_container_name> bash

फिर आईपी पते के साथ कंटेनर मैप कंटेनर_नाम के अंदर से । . उदाहरण

echo "172.15.0.5 mango1" >> /etc/hostsexit

.......
या आप इसके साथ स्पाइनिंग के दौरान कंटेनर के लिए होस्टनाम असाइन कर सकते हैं

docker run -it -h mango1 mango_image

और / या उदाहरण जोड़ें echo "172.17.0.5 mango1" >> /etc/hosts कम सिरदर्द के लिए डॉकर फाइलों में कमांड

कंटेनर अवधारणा के बीच जोड़ने का प्रयास करें