मैं अपने मोंगो डॉकर कंटेनर से इसके नाम से कनेक्ट नहीं हो सकता - node.js, mongodb, docker

मैं डॉकटर के लिए बहुत नया हूँ, लेकिन मैं एक अलग कंटेनर पर चल रहे एक मोंगो डेटाबेस से कनेक्ट करने के लिए एक नोड ऐप प्राप्त करने के लिए कुछ समस्याएँ हूँ।

मैं इसका उपयोग कर रहा हूँ आधिकारिक आम छवि

मैं इसका उपयोग करके चलाता हूं:

docker run --name some-mongo --network-alias some-mongo -d mongo

यह डिफ़ॉल्ट रूप से पोर्ट 27017 पर चल रहा है। मैं इसे मूंग शेल का उपयोग करके कनेक्ट कर सकता हूं:

mongo --host mongodb://172.17.0.2:27017

लेकिन मैं इसे नाम से कनेक्ट नहीं कर सकता

mongo --host mongodb://some-mongo:27017

MongoDB shell version: 3.2.19
connecting to: mongodb://some-mongo:27017/test
2018-05-07T17:23:20.813-0400 I NETWORK  [thread1] getaddrinfo("some-mongo") failed: Name or service not known
2018-05-07T17:23:20.813-0400 E QUERY    [thread1] Error: couldn"t initialize connection to host some-mongo, address is invalid :
[email protected]/mongo/shell/mongo.js:223:14
@(connect):1:6
exception: connect failed

इसके बजाय मुझे एक त्रुटि संदेश मिलता है कि मैं कैसे "मोंगो होस्ट से जुड़ सकता हूं:

मैं कुछ डॉकटर-कम्पोज़िट ट्यूटोरियल की कोशिश कर रहा हूँ लेकिनया तो वे बहुत सरल हैं या वे मेरे लिए काम नहीं करते हैं। मैं सिर्फ एक कस्टम नोड ऐप, (आधिकारिक नोड नहीं) को मोंगोडब और कुछ अन्य निर्भरता से कनेक्ट करना चाहता हूं।

उत्तर:

उत्तर № 1 के लिए 1

आपका दृष्टिकोण आपके होस्ट के सिस्टम कॉन्फ़िगरेशन को बदल नहीं रहा है, ताकि mongo सेवा सिर्फ उसी तरह उपलब्ध नहीं होगी। @ Unm4sk से सहमत होकर, आपको इस तरह से एक एकल कंपोज़ फ़ाइल में एप्लिकेशन की सेवाओं की रचना करनी चाहिए:

version: "2"
services:
mongo:
image: mongo
expose:
- "27017"
[...]
service_utilizing_mongo:
[...]
links:
- mongo:mongo

फिर, आपका service_utilizing_mongo एक डीएनएस प्रविष्टि होती है जो "इस सेवा को आपकी पहुंच में सक्षम बनाती है mongo एक उपनाम के माध्यम से सेवा mongo एक डिफ़ॉल्ट पर 27017 बंदरगाह।


उत्तर № 2 के लिए 1

आपको अपने कंटेनर को अपनी होस्ट मशीन के पासिंग पोर्ट्स के साथ चलाना होगा। docker run -p 27017: 27017 --name some-mongo --network-alias some-mongo -d मोंगो

आप अपने मेजबान मशीन से mongoDb से जुड़ सकते हैं।

यदि आप ऐसा नहीं करना चाहते हैं तो आप डोंगा कंटेनर कमांड के माध्यम से मोंगो से जुड़ सकते हैं docker मारना -ti some-mongo mongo


संबंधित सवाल
सबसे लोकप्रिय