当前位置:首页 >> 半导体技术突破 >> 【Redis】使用Docker镜像配置集群时的Operation timed out问题,htc x720d one xc

【Redis】使用Docker镜像配置集群时的Operation timed out问题,htc x720d one xc

cpugpu芯片开发光刻机 半导体技术突破 2
文件名:【Redis】使用Docker镜像配置集群时的Operation timed out问题,htc x720d one xc 【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/https://docs.docker.com/network/

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

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

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

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

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

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

https://redis.io/docs/management/scaling/#create-a-redis-clusterhttps://redis.io/docs/management/scaling/#create-a-redis-cluster

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接