docker连接宿主机redis,提示Connection refused
然后执行auth输入密码,连接成功,执行ping命令,回复PONG,说明配置文件读取都没有问题。发现redis 服务正常,然后用本机使用redis工具连接是否可以连接,测试发现本机的连接工具可以正常远程连接redis。服务器重启后docker连接宿主机redis,提示Connection refused。4、服务器防火墙关闭,如果时云服务器保证redis端口(一般为6379)可以正常访问。2、确定
目录
一、测试环境
centos 7
redis-5.0.14
docker-26.0.1
二、问题现象
服务器重启后docker连接宿主机redis,提示Connection refused
Reconnecting, last destination was /172.25.xxx.x:6379
Cannot reconnect to [172.25.xxx.x:6379]: Connection refused: /172.25.xxx.x:6379
出现连接拒绝,首先想到的是确认redis 服务是否已经启动,在宿主机上执行以下命令:
ps -ef|grep redis
root 997 1 0 11:36 ? 00:00:04 /usr/local/redis/bin/redis-server *:6379
root 3449 2538 0 12:34 pts/0 00:00:00 grep --color redis
发现redis 服务正常,然后用本机使用redis工具连接是否可以连接,测试发现本机的连接工具可以正常远程连接redis 。接着在宿主机测试是否可以连接,输入一下命令(需要切换到redis 的安装目录):
./redis-cli -h 172.25.xxx.x -p 6379
然后执行auth输入密码,连接成功,执行ping命令,回复PONG,说明配置文件读取都没有问题。然后上网搜索,发现有一篇文章中说,配置文件的protected-mode改为no还要再执行一下命令,宿主机连接redis,并执行命令(注意大小写):
CONFIG SET protected-mode no
再次启动应用,应用程序成功连接上了redis。
三、问题总结
上面方案的前提是保证你的redis之前能正常连接,如果时第一次连接建议按照如下步骤进行检查:
1、确定redis服务启动
ps -ef|grep redis
2、确定redis读取正确的配置文件redis.conf
INFO SERVER

3、redis服务器地址和密码正确
4、服务器防火墙关闭,如果时云服务器保证redis端口(一般为6379)可以正常访问
5、关闭redis的保护模式
protected-mode no
6、bind 127.0.0.1 ::1注释掉
bind 127.0.0.1 ::1
7、宿主机上执行config set protected-mode no
8、宿主机本机可以正常连接redis
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)