摘要
Docker CE Version:20.10.10
Centos Version:CentOS Linux release 7.9.2009 (Core)
# 一:主从复制
具体可查看 主从复制
# 二:挂载
# 2.1 新建文件夹
新建 data
和 conf
两个文件夹,位置随意。
mkdir -p /root/docker/redis4/{data,conf}
1
# 2.2 新建配置
在刚才新建的 redis4/conf
中新建文件 sentinel.conf
,填入以下内容:
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
# 哨兵sentinel监控的redis主节点的 ip port
# master-name 可以自己命名的主节点名字只能由字母A-z、数字0-9、这三个字符".-_"组成
# quorum 当这些quorum个数sentinel哨兵认为master主节点失联,那么这时客观上认为主节点失联了
sentinel monitor redis-master 172.17.0.2 6379 1
# 指定多少毫秒之后主节点没有应答,此时哨兵主观上认为主节点下线,默认30秒
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds redis-master 40000
# sentinel auth-pass <master-name> <password>
# 当在Redis实例中开启了requirepass foobared授权密码,所有连接Redis实例的客户端都 要提供密码
# 设置哨兵sentinel连接主从的密码,注意必须为主从设置一样的验证密码
# 如果无密码,则使用空字符串如下
# sentinel auth-pass redis-master ""
sentinel auth-pass redis-master qazwsx123edc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 三:启动
# 3.1 创建并启动
## 第一台哨兵
> docker run --name redis-sentinel1 -p 26379:26379 -v /root/docker/redis4/data:/data -v /root/docker/redis4/conf/sentinel.conf:/etc/redis/sentinel.conf -d redis redis-sentinel /etc/redis/sentinel.conf
## 第二台哨兵
> docker run --name redis-sentinel2 -p 26380:26379 -v /root/docker/redis4/data:/data -v /root/docker/redis4/conf/sentinel.conf:/etc/redis/sentinel.conf -d redis redis-sentinel /etc/redis/sentinel.conf
## 第三台哨兵
> docker run --name redis-sentinel3 -p 26381:26379 -v /root/docker/redis4/data:/data -v /root/docker/redis4/conf/sentinel.conf:/etc/redis/sentinel.conf -d redis redis-sentinel /etc/redis/sentinel.conf
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
释义如下:
–name
:给容器起一个名-p
:端口映射 宿主机:容器-v
:挂载自定义配置 自定义配置:容器内部配置-d
:后台运行redis-sentinel /etc/redis/sentinel.conf
:让 redis sentinel 按照此 sentinel.conf 的配置启动
# 3.2 验证
通过 docker ps
查看启动状态是否成功
# 四:容器终端
执行
docker exec -it redis-sentinel1 redis-cli -p 26379
命令,进入终端。查看信息
info Sentinel
- 把当前主节点停掉,验证从节点是否会晋升主节点 [可能需要等待10s(上面配置文件配置)]