一、查詢最新redis鏡像
docker search redis

二、下載redis鏡像
docker pull redis

三、創建一個檔案夾,以及創建redis-cluster.tmpl模板檔案
mkdir redis-cluster-d
cd redis-cluster-d
port ${PORT}
masterauth 123456
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.19.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)
四、在 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

檔案結構

五、創建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

六、進入任意一個已運行的redis容器
docker exec -it redis-7001 bash

執行集群指令
redis-cli -a 123456 --cluster create 192.168.96.171:7001 192.168.96.171:7002 192.168.96.171:7003 192.168.96.171:7004 192.168.96.171:7005 192.168.96.171:7006 --cluster-replicas 1


七、檢查集群狀態
容器內驗證
redis-cli -c -a 123456 -h 192.168.96.171 -p 7001

Centos中驗證
redis-cli -c -a 123456 -h 192.168.96.171 -p 7001

redis-cli -a 123456 --cluster check 192.168.96.171:7001

八、如果是準備在公網使用集群,需要修改每一個nodes.conf檔案中 myself,master配置的ip地址為公網ip,并重啟

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/235316.html
標籤:其他
