一 拉取镜像
docker pull redis:6.0.7
二 创建模板文件
port ${PORT}protected-mode nocluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000#cluster-announce-ip 192.168.64.2#cluster-announce-port ${PORT}#cluster-announce-bus-port 1${PORT}bind 0.0.0.0appendonly yeslogfile "redis.log"
三 生成配置文件
生成配置文件和文件夹
cd /Users/hezhaoming/Documents/docker/redisfor port in `seq 7010 7015`; do \mkdir -p ./${port}/conf \&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \&& mkdir -p ./${port}/data; \done
注意mac需要安装命令工具
brew install gettextbrew link --force gettext
四 编写编排文件
version: '3'services:redis1:image: redis:6.0.7hostname: redis1container_name: redis1networks:redis-net:ipv4_address: 172.35.0.10restart: alwaysprivileged: trueports:- 7010:7010- 17010:17010volumes:- /Users/hezhaoming/Documents/docker/redis/7010/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7010/data:/datacommand: redis-server /usr/local/etc/redis/redis.confredis2:image: redis:6.0.7hostname: redis2container_name: redis2networks:redis-net:ipv4_address: 172.35.0.20restart: alwaysprivileged: trueports:- 7011:7011- 17011:17011volumes:- /Users/hezhaoming/Documents/docker/redis/7011/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7011/data:/datacommand: redis-server /usr/local/etc/redis/redis.confredis3:image: redis:6.0.7hostname: redis3container_name: redis3networks:redis-net:ipv4_address: 172.35.0.30restart: alwaysprivileged: trueports:- 7012:7012- 17012:17012volumes:- /Users/hezhaoming/Documents/docker/redis/7012/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7012/data:/datacommand: redis-server /usr/local/etc/redis/redis.confredis4:image: redis:6.0.7hostname: redis4container_name: redis4networks:redis-net:ipv4_address: 172.35.0.40restart: alwaysprivileged: trueports:- 7013:7013- 17013:17013volumes:- /Users/hezhaoming/Documents/docker/redis/7013/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7013/data:/datacommand: redis-server /usr/local/etc/redis/redis.confredis5:image: redis:6.0.7hostname: redis5container_name: redis5networks:redis-net:ipv4_address: 172.35.0.50restart: alwaysprivileged: trueports:- 7014:7014- 17014:17014volumes:- /Users/hezhaoming/Documents/docker/redis/7014/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7014/data:/datacommand: redis-server /usr/local/etc/redis/redis.confredis6:image: redis:6.0.7hostname: redis6container_name: redis6networks:redis-net:ipv4_address: 172.35.0.60restart: alwaysprivileged: trueports:- 7015:7015- 17015:17015volumes:- /Users/hezhaoming/Documents/docker/redis/7015/conf/redis.conf:/usr/local/etc/redis/redis.conf- /Users/hezhaoming/Documents/docker/redis/7015/data:/datacommand: redis-server /usr/local/etc/redis/redis.confnetworks:redis-net:driver: bridgeipam:driver: defaultconfig:- subnet: 172.35.0.1/24
五 执行集群命令
docker-compose up -d//随机进入一个节点 执行集群命令redis-cli --cluster create 172.35.0.10:7010 172.35.0.20:7011 172.35.0.30:7012 172.35.0.40:7013 172.35.0.50:7014 172.35.0.60:7015 --cluster-replicas 1// 交互提示是否创建,输入yes 回车//创建成功//随便进入一个节点 比如最后一个节点redis-cli -c -h 172.35.0.60 -p 7015//输入命令,查看节点信息infocluster nodes
六 测试使用

工具查看,也是OK的
