环境:centos7,docker27,redis6.2.0
1、拉取Redis镜像,6.2.0版本
docker search redis
docker pull redis:6.2.0
2、创建虚拟网卡,主要用于redis-cluster能与外界进行网络通信,一般用于桥接模式
docker network create myredis
3、编写配置文件,采用了shell编程中的一些命令
ip地址我填的是自己虚拟机的地址,密码1234,这两个可根据自己情况修改
注意此时创建了一个目录 mkdir -p /home/redis/node-${port}/conf,之后要切换到redis目录下
for port in $(seq 6379 6384);
do
mkdir -p /home/redis/node-${port}/conf
touch /home/redis/node-${port}/conf/redis.conf
cat << EOF > /home/redis/node-${port}/conf/redis.conf
port ${port}
requirepass 1234
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip ip地址
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
EOF
done
4、启动redis容器,一个六个,使用shell编程启动
cd到redis目录下,执行命令
for port in $(seq 6379 6384); \
do \
docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \
--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
--privileged=true -v /home/redis/node-${port}/data:/data \
--restart always --name redis-${port} --net myredis \
--sysctl net.core.somaxconn=1024 redis:6.2.0 redis-server /usr/local/etc/redis/redis.conf
done
通过docker ps -a查看是否启动成功,如果六个容器的状态都是up的话则启动成功
5、创建redis cluster集群
随意选择一个节点进去,创建redis集群
5、1 进入redis-6379容器
docker exec -it redis-6379 /bin/bash
5、2 创建集群
redis-cli -a 之前设置的密码 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384 --cluster-replicas 1
5、3 查看节点相关信息
进入容器后,通过redis-cli -c -a 设置的密码,进入redis
输入cluster info查看集群信息
输入cluster nodes查看所有节点相关信息
6、出错时可能会用到的命令
批量停止容器
for port in $(seq 6379 6384);
do
docker stop redis-${port}
done
批量删除容器
for port in $(seq 6379 6384);
do
docker rm redis-${port}
done
批量启动容器
for port in $(seq 6379 6384);
do
docker start redis-${port}
done
参考史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会_redis cluster 搭建 docker-CSDN博客