मैं लोकलहोस्ट से कनेक्ट क्यों नहीं कर सकता:5432?
अपने कंटेनर के /etc/hosts
. को कैट करें
$ sudo docker exec -it [container] cat /etc/hosts
डॉकर नेटवर्क के लिए bridge
है डिफ़ॉल्ट रूप से, localhost
कंटेनर के अंदर के बिंदु (Docker डिफ़ॉल्ट ब्रिज नेटवर्क
).तो आपके पास 5432
. नहीं है अपने कंटेनर में सुनना:
$ sudo docker exec [container] nc -v -z localhost 5432
समाधान 1. यदि आप अपने कॉन्फिग xml के अंदर "लोकलहोस्ट:5432" को हार्डकोड करना चाहते हैं, तो सबसे आसान तरीका है "--net=host" विकल्प के साथ अपना कंटेनर बनाना:
$ sudo docker run --net=host -it ...
समाधान 2.
localhost
बदलें कंटेनर के अंदर आपके डॉकटर होस्ट आईपी का- अपना डॉकर होस्ट आईपी प्राप्त करें :
$ sudo docker inspect -f '{{ .NetworkSettings.Gateway }}' 192.168.5.1
- अपना कंटेनर दर्ज करें:
$ sudo docker exec -it [container] /bin/bash
- फ़ाइल संपादित करें
/etc/hosts
लोकलहोस्ट को डॉकर होस्ट आईपी पर इंगित करने के लिए :$ sudo vim /etc/hosts 192.168.5.1 localhost
समाधान 3. localhost
. के बजाय उपनाम का उपयोग करने के लिए अपनी डीबी कॉन्फ़िगरेशन फ़ाइल को संशोधित करें :
connectionURL="jdbc:postgresql://DB_ALIAS/admin?stringtype=unspecified"
फिर DB_ALIAS
जोड़ें कंटेनर के मेजबानों के लिए :$ sudo docker run --add-host DB_ALIAS:192.168.5.1 -it [image] ...