docker创建redis集群并从rdm连接虚拟机中redis
拉取docker镜像,默认最新版本
docker pull redis
创建网卡
docker network create redis --subnet 172.28.0.0/16
脚本创建6个redis配置
for port in $(seq 1 6); \ do \ mkdir -p ~/redis/node-${port}/conf touch ~/redis/node-${port}/conf/redis.conf cat << EOF > ~/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.28.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done
运行容器
# 容器1 docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ -v ~/redis/node-1/data:/data \ -v ~/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.11 redis redis-server /etc/redis/redis.conf # 容器2 docker run -p 6372:6379 -p 16372:16379 --name redis-2 \ -v ~/redis/node-2/data:/data \ -v ~/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.12 redis redis-server /etc/redis/redis.conf # 容器3 docker run -p 6373:6379 -p 16373:16379 --name redis-3 \ -v ~/redis/node-3/data:/data \ -v ~/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.13 redis redis-server /etc/redis/redis.conf # 容器4 docker run -p 6374:6379 -p 16374:16379 --name redis-4 \ -v ~/redis/node-4/data:/data \ -v ~/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.14 redis redis-server /etc/redis/redis.conf # 容器5 docker run -p 6375:6379 -p 16375:16379 --name redis-5 \ -v ~/redis/node-5/data:/data \ -v ~/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.15 redis redis-server /etc/redis/redis.conf # 容器6 docker run -p 6376:6379 -p 16376:16379 --name redis-6 \ -v ~/redis/node-6/data:/data \ -v ~/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.28.0.16 redis redis-server /etc/redis/redis.conf
创建集群
#进入redis容器1 docker exec -it redis-1 bash # 进入容器后,在容器中创建集群(这里会提示Can I set the above configuration(type)输入yes) redis-cli --cluster create 172.28.0.11:6379 172.28.0.12:6379 172.28.0.13:6379 172.28.0.14:6379 172.28.0.15:6379 172.28.0.16:6379 --cluster-replicas 1 # 启动redis集群客户端(-c表示集群) redis-cli -c #查看集群信息 cluster info # 集群创建好之后,11,12,13为主节点,其余为从节点 cluster nodes
运行测试
#添加redis缓存 set name Stephen #停止刚添加缓存的对应的redis节点 docker stop redis-2 #当主节点断开之后,自动从节点切换为主节点 cluster nodes
进入redis查看节点
docker exec -it redis-1 redis-cli -c
进入redis后设置密码
config set requirepass root
#查看密码是否正确并生效
auth root
为每个节点创建密码
redis-cli -c -h redis-2
#复制设置密码命令并粘贴执行
config set requirepass root
#ctrl+c退出当前节点
#⬆️ 修改为redis-3
#粘贴设置密码命令都执行ok即可
建立主机与虚拟机中doker通讯(redis为镜像容器)
docker run -tid --net=host --name docker_host1 redis
打开rdm进行连接
退出redis查看虚拟机是否关闭防火墙(非必要)
apt-get install ufw
#查看状态
ufw status
#关闭
ufw disable
#打开
ufw enable
原文链接:https://cloud.tencent.com/developer/article/1838120
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2019-07-04 8.3-构造器调用顺序