1、环境准备
#关闭防火墙 systemctl stop firewalld #查看防火墙状态 systemctl status firewalld #拉取redis:6.0.8镜像 docker pull redis:6.0.8
2、新建6个docker容器redis实例
docker run -d --name redis-node-1 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382 docker run -d --name redis-node-3 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383 docker run -d --name redis-node-4 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384 docker run -d --name redis-node-5 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
- 命令分步解释
- docker run
- 创建并运行docker容器实例
- --name redis-node-6
- 容器名字
- --net host
- 使用宿主机的IP和端口,默认
- --privileged=true
- 获取宿主机root用户权限
- -v /data/redis/share/redis-node-6:/data
- 容器卷,宿主机地址:docker内部地址
- redis:6.0.8
- redis镜像和版本号
- --cluster-enabled yes
- 开启redis集群
- --appendonly yes
- 开启持久化
- --port 6386
- redis端口号
3、进入容器构建6台机器构建主从集群关系
#进入容器 docker exec -it redis-node-1 /bin/bash #构建关系 redis-cli --cluster create 192.168.111.99:6381 192.168.111.99:6382 192.168.111.99:6383 192.168.111.99:6384 192.168.111.99:6385 192.168.111.99:6386 --cluster-replicas 1
4、登录某个阶段,查看集群和节点状态
#进入某个阶段 docker exec -it redis-node-6 /bin/bash
#登录redis
redis-cli -p 6386 #查看集群状态 cluster info #查看节点状态 cluster nodes
5、主从容错切换迁移
#进入reidis容器 docker exec -it redis-node-6 /bin/bash redis-cli --cluster check 192.168.111.99:6386
主从关系为1-4,2-5,3-6
****node1宕机,node4成为新的master
docker stop redis-node-1 docker exec -it redis-node-2 /bin/bash redis-cli -p 6382 -c cluster nodes
****node1恢复,node1成为slave
docker start redis-node-1 cluster nodes
标签:node,--,扩缩容,redis,cluster,集群,docker,yes From: https://www.cnblogs.com/zszitman/p/16843658.html