1. # 创建网络
    2. docker network create redis --subnet 172.38.0.0/16
    3. # 通过脚本创建6个redis配置
    4. for port in $(seq 1 6); \
    5. do \
    6. mkdir -p /mydata/redis/node-${port}/conf
    7. touch /mydata/redis/node-${port}/conf/redis.conf
    8. cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
    9. port 6379
    10. bind 0.0.0.0
    11. cluster-enabled yes
    12. cluster-config-file nodes.conf
    13. cluster-node-timeout 5000
    14. cluster-announce-ip 173.38.0.1${port}
    15. cluster-announce-port 6379
    16. cluster-announce-bus-port 16379
    17. appendonly yes
    18. EOF
    19. done
    20. # 启动6个redis
    21. for port in $(seq 1 6); \
    22. do \
    23. docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
    24. -v /mydata/redis/node-${port}/data:/data \
    25. -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
    26. -d --net redis --ip 172.38.0.1${port} redis redis-server /etc/redis/redis.conf;\
    27. done
    28. # 或者一个一个添加
    29. docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
    30. -v /mydata/redis/node-1/data:/data \
    31. -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
    32. -d --net redis --ip 172.38.0.11 redis redis-server /etc/redis/redis.conf
    33. # 进入redis-1
    34. docker exec -it [容器id] /bin/bash
    35. # 集群命令
    36. redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
    37. # 进入redis 集群
    38. redis-cli -c
    39. # 集群信息
    40. cluster info
    41. # 集群节点
    42. cluster nodes