https://www.cnblogs.com/hbbbs/articles/10028771.html
阿里雲安全組規則添加7000-7005和17000-17005二條(tcp、0.0.0.0/0)。
1、拉取redis鏡像
docker pull redis
docker images
創建自定義網絡
docker network create redis-net
2、在 /usr/local/下建立 redis-cluster文件夾,存放集群配置內容
mkdir /usr/local/redis-cluster cd /usr/local/redis-cluster
3、建立模版
vim redis-cluster.tmpl
#內容如下
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.1.210
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
紅色部分根據自己的服務器外網IP進行修改
4、創建集群文件
for port in `seq 7000 7005`; do \ mkdir -p ./${port}/conf \ && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \ && mkdir -p ./${port}/data; \ done
5、啟動Redis集群
for port in `seq 7000 7005`; do \ docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \ -v /usr/local/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v /usr/local/redis-cluster/${port}/data:/data \ --restart always --name redis-${port} --net redis-net \ --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \ done
6、查看docker的IP
#打印 IP for port in `seq 7000 7005`; do \ echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port}" " ; \ done
7、進入任意一個Docker,啟動集群
docker exec -it redis-7000 bash #在docker中執行 紅色部分根據第6步返回的ip信息修改 redis-cli --cluster create
192.168.1.210:7000 192.168.1.210:7001 192.168.1.210:7002 192.168.1.210:7003 192.168.1.210:7004 192.168.1.210:7005 --cluster-replicas 1
8、OK,集群啟動完成。最后看看端口映射地址:
docker ps CONTAINER ID PORTS NAMES c9432cd124c5 0.0.0.0:7005->7005/tcp, 6379/tcp, 0.0.0.0:17005->17005/tcp redis-7005 b35170361541 0.0.0.0:7004->7004/tcp, 6379/tcp, 0.0.0.0:17004->17004/tcp redis-7004 dc407c6a4f18 0.0.0.0:7003->7003/tcp, 6379/tcp, 0.0.0.0:17003->17003/tcp redis-7003 9aa093a72b22 0.0.0.0:7002->7002/tcp, 6379/tcp, 0.0.0.0:17002->17002/tcp redis-7002 6125e0a9caad 0.0.0.0:7001->7001/tcp, 6379/tcp, 0.0.0.0:17001->17001/tcp redis-7001 8f520b7f9afb 0.0.0.0:7000->7000/tcp, 6379/tcp, 0.0.0.0:17000->17000/tcp redis-7000