欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker部署Redis集群,主从集群搭建

程序员文章站 2022-04-22 10:51:01
...

注:本次是在同一主机的docker容器内,不同主机部署同理,集群redis的IP替换即可。适用于redis 5.0.0 以上,旧程序需要高版本的redis才能使用

1、docker 拉取 redis

docker search redis
docker pull redis

2、创建6个redis 容器和一个主容器(主要为创建集群使用)
此处需要指定docker的network进行容器互通

① docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5001-data:/data  --name redis-5001 redis --port 5001 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
② docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5002-data:/data  --name redis-5002 redis --port 5002 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
③ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5003-data:/data  --name redis-5003 redis --port 5003 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
④ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5004-data:/data  --name redis-5004 redis --port 5004 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
⑤ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5005-data:/data  --name redis-5005 redis --port 5005 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
⑥ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5006-data:/data  --name redis-5006 redis --port 5006 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
⑦ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5-cluster-data:/data  --name redis-5-cluster redis --appendonly yes 

成功如下图:
docker部署Redis集群,主从集群搭建
3、查看各个容器的CONTAINER ID

docker ps

docker部署Redis集群,主从集群搭建
4、查看容器对应的IP

docker inspect f81aa08ec4b6 3e1529d308da 7a7034bf5583 8606f1d7185c 46f7a1660ca4 3ad5d834f4c1 | grep IPA

docker部署Redis集群,主从集群搭建
5、进入 redis-5-cluster 容器,通过该容器创建集群
//indocker 进入容器,最下面有脚本

indocker redis-5-cluster
redis-cli --cluster create 10.0.0.3:5001 10.0.0.4:5002 10.0.0.5:5003 10.0.0.6:5004 10.0.0.7:5005 10.0.0.8:5006 --cluster-replicas 1

docker部署Redis集群,主从集群搭建

6、进入其中一个redis 查看集群情况

redis-cli -h 10.0.0.3 -p 5001 -c
cluster nodes

docker部署Redis集群,主从集群搭建
7、(indocker文件放到/bin下,可快速进入docker容器中)

#!/bin/sh
docker exec -it $1 sh

留个记录!