1、下载Redis镜像
docker pull redis:6.2
2、创建配置文件
#配置文件存放路径
mkdir /opt/redis-cluster
#批量创建集群配置文件
for port in `seq 7000 7005`; do \
var="port ${port} \nprotected-mode no \ndaemonize no \nappendonly yes \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 15000 \nbind 0.0.0.0"
# 创建redis配置文件
mkdir -p /opt/redis-cluster/${port} \
&& PORT=${port} && echo ${var} > /opt/redis-cluster/${port}/redis.conf
done
3、批量启动redis容器
for port in `seq 7000 7005`; do \
docker run -d -ti \
-v /opt/redis-cluster/${port}:/data \
--restart always \
--name redis-${port} \
--net host \
redis:6.2 redis-server /data/redis.conf;
done
4、创建集群
# 创建集群ip换成你自己本机的ip就行了
docker exec -it redis-7000 \
redis-cli -p 6379 --cluster create \
10.10.10.86:7000 10.10.10.86:7001 10.10.10.86:7002 \
10.10.10.86:7003 10.10.10.86:7004 10.10.10.86:7005 \
--cluster-replicas 1
若无问题的话输入yes集群便创建成功了
5、常用的几个命令
# 登录集群节点
docker exec -it redis-7000 redis-cli -p 7000 -c
# 查看集群信息
cluster info
# 查看集群节点信息
cluster nodes
# 启动所有容器名包含redis的容器
docker start $(docker ps -a --filter name=redis -q)
# 关闭所有容器命包含redis且正在运行的容器
docker kill $(docker ps --filter name=redis -q)
# 删除所有容器名包含redis的容器
docker rm $(docker ps -a --filter name=redis -q)
6、完整脚本
#!/bin/sh
path="/opt/redis-cluster"
mkdir ${path}
for port in `seq 7000 7005`; do \
var="port ${port} \nprotected-mode no \ndaemonize no \nappendonly yes \ncluster-enabled yes \ncluster-config-file nodes.conf \ncluster-node-timeout 15000 \nbind 0.0.0.0"
# 创建redis配置文件
mkdir -p ${path}/${port} \
&& PORT=${port} && echo ${var} > ${path}/${port}/redis.conf
# 启动redis容器
docker run -d -ti \
-v ${path}/${port}:/data \
--restart always \
--name redis-${port} \
--net host \
redis:6.2 redis-server /data/redis.conf;
done
# 创建集群
docker exec -it redis-7000 \
redis-cli -p 6379 --cluster create \
10.10.10.86:7000 10.10.10.86:7001 10.10.10.86:7002 \
10.10.10.86:7003 10.10.10.86:7004 10.10.10.86:7005 \
--cluster-replicas 1