#创建自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 redis
#通过脚本创建redis配置
for i in $(seq 1 6)
do
mkdir -p /mydata/redis/node-${i}/conf
touch /mydata/redis/node-${i}/conf/redis.conf
cat << EOF > /mydata/redis/node-${i}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.1${i}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
#通过脚本创建redis容器并启动
for i in $(seq 1 6)
do
docker run -p 637${i}:6379 -p 1637${i}:16379 --name redis-${i} -v /mydata/redis/node-${i}/data:/data -v /mydata/redis/node-${i}/conf/redis.conf:/etc/redis/redis.conf -d --net redis --ip 192.168.0.1${i} redis redis-server /etc/redis/redis.conf
done
#进入容器1创建集群
docker exec -it redis-1 /bin/sh
redis-cli --cluster create 192.168.0.11:6379 192.168.0.12:6379 192.168.0.13:6379 192.168.0.14:6379 192.168.0.15:6379 192.168.0.16:6379 --cluster-replicas 1
yes
#测试集群是否创建成功
redis-cli -c
cluster info
cluster nodes