美文网首页
单个docker 搭建redis 集群

单个docker 搭建redis 集群

作者: simians | 来源:发表于2019-10-19 23:19 被阅读0次

参考 https://www.jianshu.com/p/577460595c8c

一镜像版本时redis:5.0.2
docker pull redis:5.0.2
二创建redis-cluster.tmpl,并将下面内容复制进去
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 39.10X.XX.XX //自己服务器公网IP
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
三创建集群配置文件与数据卷
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
四创建network
docker network create redis-net
五redis容器
for port in `seq 7000 7005`; do \
  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \
  -v ${your path}/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v ${your path}/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net redis-net \
  --sysctl net.core.somaxconn=1024 redis:${tag} redis-server /usr/local/etc/redis/redis.conf; \
done

我在网上查到这里配置 ip的地址是打印出来的IP

for port in `seq 7000 7005`; do \
    echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port} ' ' ; \
done

得到ip 并配置得到如下命令

docker run -it --link redis-7000:redis --net redis-net --rm redis redis-cli --cluster create 172.19.0.2:7000  172.19.0.3:7001  172.19.0.4:7002  172.19.0.5:7003  172.19.0.6:7004  172.19.0.7:7005 --cluster-replicas 1

在执行该命令的时候会卡住过段时间会报 连接超时


image.png

我的解决方法是将ip 换为你的公网IP就行

docker run -it --link redis-7000:redis --net redis-net --rm redis redis-cli --cluster create 公网IP:7000  公网IP:7001  公网IP:7002  公网IP:7003  公网IP:7004  公网IP:7005 --cluster-replicas 1

这样就不会在被卡住并且执行成功了


image.png

结束

相关文章

网友评论

      本文标题:单个docker 搭建redis 集群

      本文链接:https://www.haomeiwen.com/subject/dzxomctx.html