2016-03-01 11 views
9

मैं के साथ NodeJS ऐप चला रहा हूं। सब ठीक काम करता है और मैं कंटेनर के अंदर मोंगो से कनेक्ट करके अपना पूरा डेटा देख सकता हूं। लेकिन जब मैं RoboMongo से कनेक्ट करता हूं तो मुझे कोई डेटा नहीं दिखता है।रोबोमोंगो को mongoDB डॉकर कंटेनर से कनेक्ट करें

मैं इस समस्या से कैसे निपट सकता हूं?

+1

क्या आप कृपया कुछ विवरण साझा कर सकते हैं या शायद आपने अभी तक जो प्रयास किया है उसका एक स्क्रीनशॉट साझा कर सकते हैं? –

+0

हे सिद्धार्थ अजमेरा मैं सिर्फ रोबोमोंगो का उपयोग करके अपने डेटा देखने की कोशिश करता हूं लेकिन यह कुछ भी नहीं दिखाता है, mongoDB एक डॉकर कंटेनर – migorman

+0

के अंदर चल रहा है क्या आप रोबोमोन्गो में सूचीबद्ध अपने डेटाबेस और संग्रह देख सकते हैं? –

उत्तर

2

आपको डॉकर कंटेनर के अंदर मोंगोडीबी को रोबोमोंगो एसएसएच सुरंग कनेक्शन करना चाहिए। सबसे पहले आपको अपने डॉकर कंटेनर के अंदर एक एसएसएच सर्वर स्थापित करना चाहिए।

https://docs.docker.com/engine/examples/running_ssh_service/


उसके बाद आप Robomongo में अपने कनेक्शन कॉन्फ़िगर करना चाहिए। "कनेक्शन सेटिंग्स" के अंदर आपके रोबोमोंगो कनेक्शन के कॉन्फ़िगरेशन टैब हैं।

"एसएसएच" टैब पर जाएं और अपने एसएसएच कनेक्शन को डॉकर कंटेनर में कॉन्फ़िगर करें। इसके बाद "कनेक्शन" टैब पर जाएं और मोंगोडीबी से अपना कनेक्शन कॉन्फ़िगर करें जैसे कि यह स्थानीयहोस्ट स्कोप में था।

+1

धन्यवाद आपकी मदद के लिए आंद्रे :) यह काम करता है! – migorman

+0

आपका स्वागत है! –

+0

मेरे लिए काम नहीं किया, इसलिए मुझे एक वर्कअराउंड मिला जो डॉकर दर्शन के साथ बेहतर ढंग से गठबंधन किया गया है: वर्णित एक एसएसएच डॉकर बनाया गया है, फिर इसे '-लिंक _mymongodocker_' पैरामीटर (और 22 के लिए पोर्ट मैपिंग' के साथ चलाएं। मुझे आसानी से यह सुनिश्चित करना है)। फिर लोकहोस्ट के बजाय रोबॉमोंगो में मैं mymongodocker का उपयोग करता हूं (जैसा कि यह जुड़ा हुआ है, यह एसएसएच डॉकर से उपलब्ध है)। एक आकर्षण की तरह काम करता है, भले ही - लिंक को बहिष्कृत किया गया हो और समय के लिए एक और आधुनिक दृष्टिकोण से प्रतिस्थापित किया जाना चाहिए, मैं बहुत आलसी हूं :) –

-3

अपनी डॉकर-कंपोज़ फ़ाइल में, आप होस्ट को पोर्ट का पर्दाफाश कर सकते हैं।

उदाहरण के लिए, निम्न कोड मशीन के अंदर पोर्ट 27017 को बंदरगाह 27018 में बंद कर देगा।

app: 
    image: node 
    volumes: 
    - /app 
    ports: 
    - "27018:27017" 

फिर, अगर आपके पास डोकर मशीन स्थापित और अपनी मशीन डिफ़ॉल्ट है, तो आप एक टर्मिनल में कर सकते हैं:

docker-machine ip default 

यह आपको अपने होस्ट के आईपी दे देंगे, उदाहरण के लिए 1 9 2.168.2.3। आपके डेटाबेस (होस्ट) का पता 1 9 2.168.2.3 और पोर्ट होगा।

अपने डोकर मशीन आभासी नहीं है और अपने ओएस है, तो अपने डेटाबेस की पता स्थानीय होस्ट और बंदरगाह हो जाएगा।

+1

हाँ हेवरचक यह मैंने किया है लेकिन ऐसा लगता है कि robomongo के लिए कुछ और कॉन्फ़िगरेशन की आवश्यकता है :) – migorman

1

कृपया ध्यान दें कि शायद आप एसएसएच का उपयोग नहीं कर पाएंगे क्योंकि यह सिर्फ मोंगो और रोबॉमोंगो के बीच असंगतता की समस्या थी।

'रोबोमोंगो v8.5 और निचला मोंगोडीबी 3 का समर्थन नहीं करता है'। डॉकर के साथ इसका कोई लेना-देना नहीं है।

9

एक और तरीका है। आप अपने वास्तविक आभासी सर्वर में Robomongo साथ

  1. SSH कि आपके डोकर अनुप्रयोगों को होस्ट करता है (SSH टैब में, देखें "उपयोग SSH सुरंग" और अन्य क्षेत्रों के हिसाब से पूरा) कर सकते हैं
  2. अब आप अपने टर्मिनल में एक ही मशीन में ssh ।
  3. docker ps आपको अपना मोंगोडीबी कंटेनर दिखाना चाहिए।
  4. docker inspect <mongo container id> उस कंटेनर के बारे में पूरी जानकारी प्रिंट करेगा।अंत में IPAddress देखें, जो आपको कंटेनर का स्थानीय आईपी देगा।
  5. Robomongo में "कनेक्शन" टैब में कनेक्ट करने के लिए कंटेनर आईपी का उपयोग करें।

एक और sidenote:सुनिश्चित करें कि आप किसी भी तरह से अपने MongoDB सेवा बंदरगाहों के संपर्क में न करें (न Dockerfile है और न ही डोकर-compose.yml), कारण यह है कि हर जगह से अपने डेटाबेस खुले तौर पर पहुंचा जा सकता है। यह मानते हुए कि आपने उस सेवा के लिए उपयोगकर्ता नाम/पासवर्ड सेट नहीं किया है, आपको स्कैन किया जाएगा और जल्द ही हैक किया जाएगा।

+0

यह मेरे लिए एकमात्र वैध उत्तर है क्योंकि मैं क्लाउड सर्वर पर हूं और मैं निश्चित रूप से अपने डेटाबेस पोर्ट का पर्दाफाश नहीं करूँगा या अपने किसी भी कंटेनर को बदल नहीं सकता। धन्यवाद! – Ben

+0

बहुत बढ़िया! धन्यवाद, यह मेरे लिए काम :) –

संबंधित मुद्दे