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