当使用docker运行项目时,
使用127.0.0.1:6379的本地默认环回地址连接redis时总会出现连接失败的问题,
如何修复以上问题?
(本文默认您拥有基本ubuntu服务器操作技巧,以及docker项目和redis服务器已正常安装。)
第一步:编辑redis配置文件允许外网连接。
sudo nano /etc/redis/redis.conf #开启redis的配置文件。
找到以下代码并修改,
bind 127.0.0.1 ::1 ——> #bind 127.0.0.1 ::1 #允许所有ip可以连接
protected-mode yes ——> protected-mode no #内网保护模式关闭
#requirepass foobared ——> requirepass yourpassword #设置redis连接密码
保存文件
sudo systemctl restart redis-server #重启redis服务器使配置生效
第二步:连接redis服务器
sudo apt install net-tools #安装ip工具查看服务器绑定的专有内网地址
ifconfig
找到eth0 的inet 背后以10开头的内网专用ip地址
记下这个ip地址,
然后进入你的docker 项目内填写redis配置的地方把127.0.0.1的环回地址改为10开头的内网专用ip地址
再把密码填写好,即可正确连接redis服务器。
总结
为什么直接连接127.0.0.1:6379无法连接到redis服务器?
因为在docker内部使用127.0.0.1作为环回地址时,其实使用的不是服务器自身的127.0.0.1的环回地址,而是使用的docker内部自己的环回地址,导致连接失败。
为什么要使用redis服务器?
redis内存缓存主要用于数据库不在本地时对数据进行缓冲的作用,比如说我的博客是基于云Mysql数据库的,需要启用redis作为内存缓存,降低访问延时。
本博客另一篇文章:Docker应用如何连接到宿主机网络 - Sereniblue是此方法的提升和简化,若您扔为解决问题,可以参照这篇文章内容进行设置。
Comments 1 条评论