1、查詢最新redis鏡像
docker search redis
2、下載下傳redis鏡像
docker pull redis
3、建立一個檔案夾,以及建立redis-cluster.tmpl模闆檔案
mkdir redis-cluster-d
cd redis-cluster-d
vi redis-cluster.tmpl
port ${PORT}
masterauth 123456
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.17.0.1
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
參數描述
(1)port(端口号)
(2)masterauth(設定叢集節點間通路密碼,跟下面一緻)
(3)requirepass(設定redis通路密碼)
(4)cluster-enabled yes(啟動叢集模式)
(5)cluster-config-file nodes.conf(叢集節點資訊檔案)
(6)cluster-node-timeout 5000(redis節點當機被發現的時間)
(7)cluster-announce-ip(叢集節點的彙報ip,防止nat,預先填寫為網關ip後續需要手動修改配置檔案)
(8)cluster-announce-port(叢集節點的彙報port,防止nat)
(9)cluster-announce-bus-port(叢集節點的彙報bus-port,防止nat)
(10) appendonly yes(開啟aof)
4、在 redis-cluster下生成conf和data目标,并生成配置資訊
執行以下指令,按模闆生成檔案以及檔案夾
for port in `seq 7001 7006`; do
mkdir -p ./${port}/conf
&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf
&& mkdir -p ./${port}/data;
done
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZhBDMiR2MxgTMwE2YmZDOxkzYwUjM1gzNzYGO2IWOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
5、建立6個redis容器
for port in `seq 7001 7006`; do
docker run -d --net=host -v /root/redis-cluster-d/${port}/conf/redis.conf:/etc/redis/redis.conf -v /root/redis-cluster-d/${port}/data:/data --restart always --name=redis-${port} redis redis-server /etc/redis/redis.conf;
done
6、進入任意一個已運作的redis容器
docker exec -it redis-7001 bash
執行叢集指令
redis-cli -a 123456 --cluster create 192.168.52.19:7001 192.168.52.19:7002 192.168.52.19:7003 192.168.52.19:7004 192.168.52.19:7005 192.168.52.19:7006 --cluster-replicas 1
7、檢查叢集狀态
容器内驗證:
redis-cli -c -a 123456 -h 192.168.52.19 -p 7001
Centos中驗證:
yum install redis -y
redis-cli -c -a 123456 -h 192.168.52.19 -p 7001
redis-cli -a 123456 -h 192.168.52.19 -p 7001 cluster nodes
檢查叢集健康狀态
redis-cli -a 123456 --cluster check 192.168.52.19:7001