Docker 搭建Redis Cluster 集群

环境:

centos7

redis:7.0.5 三主三从,六个节点

一、下载redis镜像

docker pull redis:7.0.5

二、创建虚拟网卡

docker network create redis-cluster

# 查看创建的Docker网卡
docker network ls

网卡类型为bridge桥接类型

三、准备redis配置文件 redis.conf

port ${port}
requirepass 123456
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes 
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip  服务器ip地址
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}

配置解释:

  • port:节点端口;
  • requirepass:设置密码,访问时需要验证
  • protected-mode:保护模式,默认值 yes,即开启。开启保护模式以后,需配置 bind ip 或者设置访问密码;关闭保护模式,外部网络可以直接访问;
  • daemonize:是否以守护线程的方式启动(后台启动),默认 no;
  • appendonly:是否开启 AOF 持久化模式,默认 no;
  • cluster-enabled:是否开启集群模式,默认 no;
  • cluster-config-file:集群节点信息文件;
  • cluster-node-timeout:集群节点连接超时时间;
  • cluster-announce-ip:集群节点 IP
    • 注意: 如果你想要你的redis集群可以供外网访问,这里直接填 服务器的IP 地址即可
    • 如若为了安全,只是在服务器内部进行访问,这里还需要做一些修改。
  • cluster-announce-port:集群节点映射端口;
  • cluster-announce-bus-port:集群节点总线端口。
  • 注意,关于Redis Cluster 集群官网两个TCP端口的说明:Docker 搭建Redis Cluster 集群_第1张图片

将确认端口和服务器ip地址的配置文件放入/home/redis/node-${port}/conf/redis.conf。 

例如:

port 6381
requirepass 123456
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes 
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip  192.168.56.101
cluster-announce-port 6381
cluster-announce-bus-port 16381

 

四、配置/etc/sysctl.conf

vi /etc/sysctl.conf

在最后一行添加如下配置:

net.core.somaxconn = 1024

vm.overcommit_memory=1

 保存后输入:sysctl -p 使配置立即生效。

 

五、启动容器

 docker run -it -d -p ${port}:${port} -p 1${port}:1${port} 
    \--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf 
    \--privileged=true -v /home/redis/node-${port}/data:/data 
    \--restart always --name redis-${port} --sysctl net.core.somaxconn=511 --net redis-cluster 
    \redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf

例如:docker run -it -d -p 6379:6379 -p 16379:16379 --privileged=true -v /home/redis/node-6379/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -v /home/redis/node-6379/data:/data --restart always --name redis-6379 --sysctl net.core.somaxconn=511 --net redis-cluster redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf

六、 创建Redis Cluster集群

随意进入一个redis节点:

docker exec -it redis-6379 /bin/bash

进入redis 6379节点之后执行如下命令: 

redis-cli  -a 之前设置的密码 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384   --cluster-replicas 1

例如:

redis-cli  -a 123456 --cluster create 192.168.56.101:6379 192.168.56.101:6380 192.168.56.101:6381 192.168.56.101:6382 192.168.56.101:6383 192.168.56.101:6384 --cluster-replicas 1 

出现下图所示表示创建成功:

Docker 搭建Redis Cluster 集群_第2张图片 

你可能感兴趣的:(docker,redis,容器)