2016-12-29 11 views
8

मुझे लगता है कि बहुत सारे लोग इस के साथ संघर्ष कर रहे हैं, ऐसा लगता है कि रेडिस कंटेनर छवि में एक बग है, और अन्य एक समान समस्या का पीछा कर रहे हैं।होस्ट मशीन से डॉकर कंटेनर में चल रहे रेडिस से कनेक्ट

मैं डॉकरबब पर मानक रेडिस छवि का उपयोग कर रहा हूं। (https://github.com/dockerfile/redis)

इसे इस तरह से चल रहा है:

docker run -it -p 6379:6379 redis bash 

एक बार मैं में मैं सर्वर शुरू कर सकते हैं, और कंटेनर छवि से एक redis पिंग कर रहा हूँ।

दुर्भाग्यवश, मैं अपने मेजबान से रेडिस कंटेनर से कनेक्ट नहीं कर सकता।

मैंने सेटिंग की कोशिश की है, जैसे कि नीचे।

bind 127.0.0.1 

और विन्यास से बाँध हटाया

और संरक्षित मोड

protected-mode no 

बंद कर देते हैं मैं जानता हूँ कि यह विन्यास फाइल पढ़ रही है, के बाद से मैं बंदरगाहों बस का परीक्षण करने के लिए बदल करने की कोशिश की, और मैं ऐसा करने में सक्षम था।

मैं विंडोज 10 चला रहा हूं, तो शायद यह एक विंडोज नेटवर्किंग मुद्दा है। मुझे आम तौर पर डॉकर के साथ कोई समस्या नहीं है।

+0

आप कैसे कनेक्ट करने का प्रयास कर रहे हैं रेडिस कंटेनर? क्या आप रेडिस कंटेनर के अंदर बैश तक पहुंचने की कोशिश कर रहे हैं या 637 9 बंदरगाह का उपयोग कर रेडिस कंटेनर से कनेक्ट करने का प्रयास कर रहे हैं? –

उत्तर

3

समस्या अपने बाँध के साथ है, आप स्थापित करना चाहिए निम्नलिखित मैं हैरान हूँ:

bind 0.0.0.0 

यह एक इंटरफेस के साथ एक कंटेनरीकृत वातावरण में redis सेट हो जाएगा सभी इंटरफ़ेस उपलब्ध करने के लिए बाध्य करने के लिए,, (eth0) और एक लूपबैक (lo) रेडिस उपरोक्त दोनों को बाध्य करेगा। आपको config file में अन्य निर्देशों के माध्यम से सुरक्षा उपायों को जोड़ने या firewalls जैसे बाहरी उपकरणों का उपयोग करने पर विचार करना चाहिए। क्योंकि इस दृष्टिकोण के साथ हर कोई आपके redis सर्वर से कनेक्ट हो सकता है।

डिफ़ॉल्ट सेटिंग bind 127.0.0.1 है और यह सेटिंग केवल redis का कारण लूपबैक इंटरफ़ेस पर सुनने के लिए होगी, और यह केवल कंटेनर के अंदर से ही पहुंच योग्य होगी। (सुरक्षा के लिए)

कस्टम विन्यास फाइल के साथ redis चलाने के लिए:

sudo docker run -d --name redis-test -p 6379:6379 -v /path/to/redisconf/redis.conf:/redis.conf redis redis-server /redis.conf 

अब साथ डोकर मेजबान पर सत्यापित करने के लिए redis-tools स्थापित:

sudo redis-cli       
127.0.0.1:6379> 
127.0.0.1:6379> set farhad likes:stackoverflow 
OK 
127.0.0.1:6379> get farhad 
"likes:stackoverflow" 
127.0.0.1:6379> 

तुम भी एक से अपने redis कंटेनर के लिए connnect कर सकते हैं बाहरी होस्ट के माध्यम से:

redis-cli -h 'IP-address-of-dockerhost-running-redis-container' 
+0

आपकी मदद के लिए धन्यवाद, मुझे वहां काफी कुछ नहीं मिला। ऐसा लगता है कि जब मैं अपने मेजबान कंप्यूटर से कनेक्ट करने का प्रयास करता हूं तो रेडिस इसे पसंद नहीं करता है, लेकिन मैंने दूसरी डॉकर छवि को बढ़ाया, और रेडिस डॉकर छवि का आईपी पता मिला, और मैं कनेक्ट करने में सक्षम था।एक दूसरी डॉकर छवि से मैं इस तरह के रेडिस सर्वर से कनेक्ट करने में सक्षम था: redis-cli -h 172.17.0.2 – user3888307

+0

यदि आप किसी अन्य कंटेनर से कनेक्ट कर सकते हैं तो आप उससे कनेक्ट करने में सक्षम होना चाहिए। बस सुनिश्चित करें कि आपके कस्टम कॉन्फ़िगरेशन में आपके पास 0.0.0.0' बाध्य है और कंटेनर बनाते समय आप '6378' का पर्दाफाश करते हैं। डॉकर होस से आप 'सुडो रेडिस-क्ली' चलाकर कनेक्ट कर सकते हैं। यदि सब कुछ विफल हो जाता है, तो आप मुझे जो कुछ भी कर रहे हैं उसके कदम से कदम दें ताकि मैं समस्या का पुनरुत्पादन कर सकूं। आपकी सहायता के लिए –

+0

धन्यवाद फरहाद। ऐसा लगता है कि डॉकर हब पर रेडिस छवि के साथ कुछ ऐसा लगता है, मैंने उबंटू सर्वर पर रेडिस स्थापित किया था और यह काम करता था जैसा कि मैंने उम्मीद की थी। मैं बस अपने स्थानीय होस्ट से रेडिस हिट करने के लिए इसका उपयोग करूंगा – user3888307

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