拉取redis镜像
docker pull redis
创建redis节点容器
docker create --name redis-node01 --net host -v /docker/redis/node1:/data redis --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379
docker create --name redis-node02 --net host -v /docker/redis/node2:/data redis --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380
docker create --name redis-node03 --net host -v /docker/redis/node3:/data redis --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381
- /docker/redis/node3是宿主机目录
- –net host 是使用宿主机网络,不额外分配IP,不然通过宿主机外网IP无法访问集群
配置集群关系
docker exec -it redis-node01 /bin/bash
进入任意一个容器
redis-cli --cluster create ip:6379 ip:6380 ip:6381 --cluster-replicas 0
- ip是宿主机IP
如果出现如下情况:
大概率是集群总线端口未对外开放,比如在阿里云服务器上搭建的,需要去配置下安全组,除了6379-6381外,还需开放16379-16381。默认集群总线端口是客户端端口基础上+10000。
修改conf中的IP配置
如果宿主机是阿里云服务器这种,则需要修改此项,否则外网客户端连接时会提示内网IP连接不上。找到nodes-node-0x.conf,编辑,此时可以看到里面有3个节点的Ip配置,属于当前节点的那个ip应该是内网IP,需要改成外网IP,每个节点都需要修改。