阿里云服务器 CentOS 7.5 64位 docker安装redis集群

网上有很多教程可以参考,但是遇到坑了......

最后参考这个教程成功了。https://www.cnblogs.com/hbbbs/articles/10028771.html

安装docker 参考  

阿里云安全组规则添加7000-7005和17000-17005二条(tcp、0.0.0.0/0)。

1、拉取redis镜像

docker pull redis
docker images

创建自定义网络

docker network create redis-net

2、在 /usr/local/下建立 redis-cluster文件夹,存放集群配置内容

mkdir /usr/local/redis-cluster
cd /usr/local/redis-cluster

3、建立模版

vim redis-cluster.tmpl

#内容如下
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.1.210
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

红色部分根据自己的服务器外网IP进行修改

4、创建集群文件

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

5、启动Redis集群

for port in `seq 7000 7005`; do \
 docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \
 -v /usr/local/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
 -v /usr/local/redis-cluster/${port}/data:/data \
 --restart always --name redis-${port} --net redis-net \
 --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
 done
 

6、查看docker的IP

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

7、进入任意一个Docker,启动集群

docker exec -it redis-7000 bash

#在docker中执行   红色部分根据第6步返回的ip信息修改
redis-cli --cluster create 172.18.0.2:7000 172.18.0.3:7001 172.18.0.4:7002 172.18.0.5:7003 172.18.0.6:7004 172.18.0.7:7005 --cluster-replicas 1

8、OK,集群启动完成。最后看看端口映射地址:

docker  ps

CONTAINER ID    PORTS                                                        NAMES
c9432cd124c5    0.0.0.0:7005->7005/tcp, 6379/tcp, 0.0.0.0:17005->17005/tcp   redis-7005
b35170361541    0.0.0.0:7004->7004/tcp, 6379/tcp, 0.0.0.0:17004->17004/tcp   redis-7004
dc407c6a4f18    0.0.0.0:7003->7003/tcp, 6379/tcp, 0.0.0.0:17003->17003/tcp   redis-7003
9aa093a72b22    0.0.0.0:7002->7002/tcp, 6379/tcp, 0.0.0.0:17002->17002/tcp   redis-7002
6125e0a9caad    0.0.0.0:7001->7001/tcp, 6379/tcp, 0.0.0.0:17001->17001/tcp   redis-7001
8f520b7f9afb    0.0.0.0:7000->7000/tcp, 6379/tcp, 0.0.0.0:17000->17000/tcp   redis-7000

猜你喜欢

转载自www.cnblogs.com/eeddee/p/12090680.html