समस्या आपके बाइंड के साथ है, आपको निम्न सेट करना चाहिए:
bind 0.0.0.0
यह redis
set सेट करेगा एक इंटरफेस के साथ एक कंटेनरीकृत वातावरण में उपलब्ध सभी इंटरफेस से जुड़ने के लिए, (eth0
) और एक लूपबैक (lo
) रेडिस उपरोक्त दोनों के लिए बाध्य होगा। आपको config file
में अन्य निर्देशों के माध्यम से सुरक्षा उपायों को जोड़ने पर विचार करना चाहिए या firewalls
. जैसे बाहरी टूल का उपयोग करना . क्योंकि इस दृष्टिकोण से हर कोई आपके redis
. से जुड़ सकता है सर्वर।
डिफ़ॉल्ट सेटिंग है bind 127.0.0.1
और यह सेटिंग 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
. के साथ सत्यापित करने के लिए स्थापित:
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
. से भी जुड़ सकते हैं एक बाहरी होस्ट से कंटेनर के माध्यम से:
redis-cli -h 'IP-address-of-dockerhost-running-redis-container'