PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

वेब ऐप लॉन्च करने के लिए डॉकर का उपयोग करना, पोस्टग्रेस्क्ल डीबी से कनेक्ट नहीं हो सकता है?

मैं लोकलहोस्ट से कनेक्ट क्यों नहीं कर सकता: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] ...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में अनुक्रमणिका के अस्तित्व की जाँच करना

  2. पोस्टग्रेएसक्यूएल पैरामीटराइज्ड ऑर्डर बाय / लिमिट इन टेबल फंक्शन

  3. PostgreSQL CASE ... END कई शर्तों के साथ

  4. अगले दिन फिर से खेले गए प्रतिशत की गणना

  5. PostgreSQL में टेबल को अनपिवट कैसे करें