Docker与Redis集群搞基(需注意的)-yellowcong

2024-01-04 12:30

本文主要是介绍Docker与Redis集群搞基(需注意的)-yellowcong,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我在docker中安装了redis的集群,本来想着连接应该没有问题的,但是集群的时候连接不上, 单独连接的时候,能连接的上,bind的ip是容器的ip,一点毛病都没有,外网就是连接不上容器的集群,但是宿主机通过客户端可以连接上集群,而且外网能连接集群的任何节点,但是连接不了集群,菊花非常的疼啊,但是不通过docker(直接搭建在linux虚拟机上),同样的操作,可以访问集群.(PS 在docker下搭建有问题,由于容器和物理机不在一个网段,导致物理机访问不了容器的redis服务)

1、容器中搭建集群

1.1端口的映射

可以看到端口一一对应,我怀疑,就是映射的是0.0.0.0ip,应该修改端口映射,应该映射为主机ip:port

#原来 的配置方式
docker run -it \
-p 7001:7001 \
-p 7002:7002 \
-p 7003:7003 \
-p 7004:7004 \
-p 7005:7005 \
-p 7006:7006 \
--name redis-cluster \
yellowcong/redis-cluster:latest

这里写图片描述

1.2服务器端访问容器

大家可以看到,我连接的ip是宿主机的ip,而且也可以看到,是容器的集群ip
这里写图片描述

1.3服务启动脚本

#!/bin/bash

echo 'start servier'redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7001/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7002/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7003/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7004/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7005/redis.conf
redis-server /usr/local/redis/redis-4.0.2/redis_cluster/7006/redis.confecho 'redis is start now'

这里写图片描述

1.4关闭脚本

#!/bin/bash

echo 'stop service 'redis-cli -h 172.17.97.2 -p 7001 shutdown
redis-cli -h 172.17.97.2 -p 7002 shutdown
redis-cli -h 172.17.97.2 -p 7003 shutdown
redis-cli -h 172.17.97.2 -p 7004 shutdown
redis-cli -h 172.17.97.2 -p 7005 shutdown
redis-cli -h 172.17.97.2 -p 7006 shutdown

这里写图片描述

1.5服务端口

redis服务器端口和eth0网卡端口一致
这里写图片描述

集群也没毛病
这里写图片描述

不能连接的原因

bind只能让redis从哪一张网卡来访问redis,所以 我们设定的是容器的ip网段,而我们的宿主机是和容器,是通过桥接,所以是一个网段的,而物理机和虚拟机 是一个网段的,物理机和容器不在一个网段所以访问不了容器里面的redis

#查看监听端口,监听的端口是172网段的,所以导致我们使用192的网段,就是调用不了
ps -aux |grep redis 

这里写图片描述

这篇关于Docker与Redis集群搞基(需注意的)-yellowcong的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569342

相关文章

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模