当前位置: 首页 > news >正文

解决docker容器内无法连接宿主redis

背景 小程序的发短信服务挂了,随查看日志,该报错日志如下

在这里插入图片描述
Error 111 connecting to 127.0.0.1:6379. Connection refused.
6379是监听redis服务的端口,那大概是redis出错了。
首先查看了redis是否正常启动,检查出服务正常。
由于小程序是部署在docker内,而redis是安装在宿主主机内。
于是简单写了个demo测试是否能连接redis

import redistry:# 创建Redis连接r = redis.Redis(host='127.0.0.1', port=6379)# 测试连接response = r.ping()if response:print("成功连接到Redis服务器")else:print("无法连接到Redis服务器")except redis.exceptions.ConnectionError as e:print("连接错误:", str(e))

结果显示,在容器外可以正常连接redis,但是在容器内无法连接容器
这个原因大概是我们可以简单把docker当作是一个虚拟机,容器内外是两套系统。
那知道了原因,解决起来就比较迅速了。
首先,找到docker的虚拟IP
通过命令ifconfig
在这里插入图片描述
把这个虚拟IP加入到redis配置中
找到redis.config
然后修改如下地方
找到bind 127.0.0.1这一行,修改如下

bind 127.0.0.1 172.17.0.1

修改保护模式
protected-mode 设置为no
这个保护模式可能会不生效,报错结果如下
在这里插入图片描述
那么则进入redis中修改保护模式,把保护模式设置为No即可
在这里插入图片描述

另连接redis时,需要用docker的虚拟IP

http://www.lryc.cn/news/273861.html

相关文章:

  • 43 tmpfs/devtmpfs 文件系统
  • C语言编译器(C语言编程软件)完全攻略(第十二部分:VS2010下载地址和安装教程(图解))
  • 【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用
  • BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【3】
  • 静态网页设计——校园官网(HTML+CSS+JavaScript)
  • phpstudy_pro 关于多版本php的问题
  • TemporalKit的纯手动安装
  • 人生重开模拟器
  • 优化算法3D可视化
  • 魔术表演Scratch-第14届蓝桥杯Scratch省赛真题第1题
  • LLM 中的长文本问题
  • 深入了解Swagger注解:@ApiModel和@ApiModelProperty实用指南
  • Linux学习第48天:Linux USB驱动试验:保持热情,保持节奏,持续学习是作为一个技术人员应有的基本素质和要求
  • 数据库索引简析
  • leetcode贪心(单调递增的数字、监控二叉树)
  • 如何在win7同样支持Webview2 在 WPF 中使用本地 Webview2 ,如何不依赖系统 Runtime
  • 【docker】网络模式管理
  • LiveGBS国标GB/T28181流媒体平台功能-国标级联中作为下级平台对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话
  • 技术发展驱动编程语言走向
  • tp5+workman(GatewayWorker) 安装及使用
  • vscode安装Prettier插件,对vue3项目进行格式化
  • macOS跨进程通信: XPC 创建实例
  • Ubuntu18.04 升级Ubuntu20.04
  • 自动化测试怎么做?看完你就懂了。。。
  • 小秋SLAM入门实战opencv所有文章汇总
  • 2023年终总结(脚踏实地,仰望星空)
  • Transforer逐模块讲解
  • macOS进程间通信的常用技术汇总
  • 高德地图信息窗体设置
  • isEmpty 和 isBlank 的用法区别,居然一半的人答不上来.....