无法连接本地虚拟机docker容器redis

问题描述

在做springboot项目过程中,使用restfulBox测试Web方法时,出现redis连接异常

RedisConnectionFailureException
后来在Redis Desktop Manager中测试redis连接,也没有成功

检查内容

1. 检查redis配置文件redis.conf

 主要看以下几个内容:
bind 0.0.0.0 			# 0.0.0.0,允许服务器接受来自任何网络接口的连接,
						# 127.0.0.1,只有本机客户端可以访问,其他服务器无法访问
protected-mode no		# no,禁用保护模式,允许从外部计算机连接到Redis服务器
						# yes,当保护模式开启时,如果没有设置绑定地址(bind)或密码(requirepass),Redis服务器将只接受本地连接
requirepass xxx			# 设置连接密码

2. 检查redis端口映射

0.0.0.0:6379->6379/tcp

3. 关闭防火墙,或者开放对应端口

# 查看防火墙状态
systemctl status firewalld
# 开启防火墙					
systemctl start firewalld
# 关闭防火墙							
systemctl stop firewalld

# 永久开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent

4. 检查Redis密码配置正确

 检查是否启用了密码认证,但未在连接时提供。

5. 确认Redis容器正常运行

# 查看当前正在运行的容器
docker ps
# ​检查redis容器是否运行
docker ps -a | grep redis

6. 测试连接性

使用redis-cli测试

# 进入容器内部执行
docker exec -it redis redis-cli
# 如果设置了密码
AUTH [username] password
# 测试连通性,返回PONG
ping

7. 确认宿主机与虚拟机的网络模式

因为是校园网,选择使用NAT模式,将宿主机端口(如6379)映射到虚拟机内部6379端口。
虚拟机端口转发设置
端口转发规则

  • 修改后如果还是无法连通,建议可以试试重启docker,或者开机重启电脑(真的很玄学)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值