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

【Redis】使用Docker镜像配置集群时的Operation timed out问题

不知道有没有小伙伴跟我一样是使用的Docker镜像进行Redis集群案例模拟的(三台虚拟机确实带不动= =),然后我遇到了一个问题:Could not connect to Redis at 172.17.0.2:6379: Operation timed out

172.17.0.2是我其中一个Redis实例的IP和端口号,并且我用主机ping 172.17.0.2是可以ping通的

于是我又仔细翻了翻官网集群的相关内容,发现了如下一段

大致翻译下:

目前,Redis Cluster 不支持 NAT 环境以及一般 IP 地址或 TCP 端口重新映射的环境。

而Docker使用技术的就是端口映射:在Docker容器内运行的程序可能会使用与程序认为正在使用的端口不同的端口来公开。

在 Docker 容器内运行的程序可能会使用与程序认为正在使用的端口不同的端口来公开。这对于在同一服务器中同时使用相同端口运行多个容器非常有用。

为了让Docker兼容Redis Cluster,需要使用Docker的主机组网模式。请参阅Docker 文档--net=host中的选项以获取更多信息。

我们来Docker这里瞅瞅

https://docs.docker.com/network/icon-default.png?t=N6B9https://docs.docker.com/network/

果然,发现了很关键的一句

容器是不会向外暴露任何端口的!

所以才会出现IP能ping通,但是加上端口后Operation timed out

当然,后面也提供了解决方法:启动容器时加--publish or -p

但是紧接着,官网也提出了这么操作并不安全,并建议如果想让一个容器可供其他容器访问,则无需发布该容器的端口。通过将容器连接到同一网络(通常是桥接网络)来启用容器间通信。

虽然提供了处理方法,但是个人还是建议直接按照官网的集群案例来进行集群搭建案例:

https://redis.io/docs/management/scaling/#create-a-redis-clustericon-default.png?t=N6B9https://redis.io/docs/management/scaling/#create-a-redis-cluster

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

相关文章:

  • Java 生产初学常用注解
  • mousedown拖拽功能(vue3+ts)
  • 【论文阅读】基于深度学习的时序异常检测——TransAD
  • NLPCC 出版部分相关源码记录
  • 【Windbg】通过网络调试windows内核
  • 代码随想录算法训练营之JAVA|第二十四天| 93. 复原 IP 地址
  • 网络安全 Day30-运维安全项目-堡垒机部署
  • 电脑文件夹备份命令
  • RocketMQ Learning(一)
  • libmpv使用滤镜处理视频进行播放
  • Harbor.cfg 配置文件参数详解
  • 模仿火星科技 基于cesium+ 贴地测量+可编辑
  • 模仿火星科技 基于cesium+角度测量+高度测量+可编辑
  • Codeforces の 动态规划
  • 数学建模-爬虫系统学习
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制概述
  • 【力扣刷题 | 第二十五天】
  • GO学习之 函数(Function)
  • Jstack线上问题排查
  • VIM 编辑器: Bram Moolenaar
  • 鸿蒙应用开发指南:从零开始构建一款智能音乐播放器
  • 如何实现对主机的立体监控?
  • 机器学习笔记:李宏毅ChatGPT Finetune VS Prompt
  • 中电金信:逐数兴业 智启未来——“数据二十条”影响之解读 (下)
  • 54款宝藏级AIGC工具分享(claude,Midjourney,Stable Diffusion等)
  • bigemap如何添加在线地图源?
  • 84. 柱状图中最大的矩形
  • 嘉楠勘智k230开发板上手记录(二)--hello world
  • ArcGIS Pro实践技术应用——暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升
  • 学习pytorch