docker技术快速实现前后端项目的集群化⑧docker部署redis集群

docker技术快速实现前后端项目的集群化⑧docker部署redis集群

获取基础镜像redis,并重命名为redis

[root@server01 ~]# docker pull yyyyttttwwww/redis

[root@server01 ~]# docker tag docker.io/yyyyttttwwww/redis redis

创建新的网络net2,并且将redis集群运行在新的网络net2中

[root@server01 ~]# docker network create --subnet=172.19.0.0/16 net2

启动redis01容器

[root@server01 ~]# docker run -it -d --name redis01 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis /bin/bash

[root@server01 ~]# docker exec -it redis01 /bin/bash

root@7a30246ddad2:/# vim /usr/redis/redis.conf

root@7a30246ddad2:/# cd /usr/redis/src/

root@7a30246ddad2:/usr/redis/src# ./redis-server ../redis.conf

编辑redis配置文件

daemonize yes

appendonly yes

lua-time-limit 5000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 15000

依次创建redis02/redis03/redis04/redis05/redis06节点,并进入容器中,启动redis程序

docker run -it -d --name redis02 -p 5002:6379 --net=net2 --ip 172.19.0.3 redis /bin/bash

docker run -it -d --name redis03 -p 5003:6379 --net=net2 --ip 172.19.0.4 redis /bin/bash

docker run -it -d --name redis04 -p 5004:6379 --net=net2 --ip 172.19.0.5 redis /bin/bash

docker run -it -d --name redis05 -p 5005:6379 --net=net2 --ip 172.19.0.6 redis /bin/bash

docker run -it -d --name redis06 -p 50016:6379 --net=net2 --ip 172.19.0.7 redis /bin/bash

# 示例

[root@server01 ~]# docker exec -it redis02 /bin/bash

root@0bcb0f08beeb:/# cd /usr/redis/src/

root@0bcb0f08beeb:/usr/redis/src# ./redis-server ../redis.conf

安装ruby环境通过ruby脚本创建redis集群

root@7a30246ddad2:/etc/apt# cd /usr/redis/cluster/
root@7a30246ddad2:/usr/redis/cluster# ./redis-trib.rb create --replicas 1 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379

测试集群

 

停掉redis03看集群是否能正常主从切换,可以看到172.19.0.7从slave转换成了master

Docker pause redis03

再次启动redis03

[root@server01 ~]# docker unpause redis03

可以看到此时也不会发生切换

原文地址:https://www.cnblogs.com/reblue520/p/13410792.html