docker-compose+redis一主两从配置+哨兵模式(跨服务器)
首先所有主机安装好docker and dockercompose 安装过程就不多做记录了,网上很多
这里本人的环境是用了6台服务器,三台做一主两从,另外三台各安装了一个sentinel用来投票.
直接进入正题:
进入master宿主机
cd /marvel/local//marvel/local/docker/redis 这个文件夹完全按照自己的服务器环境进入
vim docker-compose.yml 创建docker-compose文件
version: '2'
services:
master:
image: redis ## 镜像
container_name: redis-master ##自定义容器名称
command: redis-server --requirepass (password) ##创建容器后 自动执行的命令 password填写自己需要的密码,不用括号
ports:
- "6379:6379" ##将容器的6379端口映射到宿主机的6379端口
network_mode: "host" ##容器网络的模式使用宿主机的IP
保存 退出 然后 docker-compose up -d 启动容器
docker ps 确认容器是否成功启动
这里看到容器已经成功启动
在用netstat -untlp | grep 6379 查看一下端口是否映射
进入slave宿主机
也是一样
cd /marvel/local//marvel/local/docker/redis cd进文件夹
vim docker-compose.yml
version: '2'
services:
slave1:
image: redis ## 镜像
container_name: redis-slave-1 ##自定义容器名称
command: redis-server --slaveof (master宿主机ip) 6379 --requirepass (password) --masterauth (password)
ports:
- "6379:6379" ## 暴露端口 不一样的宿主机习惯用一样的端口,如果是在同一台机器上可以更改一下端口
network_mode: "host" ##容器使用宿主机的IP
同样重复一下查看步骤
用以上的方式 再创建一台slave从容器
现在 进入master 查看
docker exec -it 容器名称或容器id bash
redis-cli -p 6379 -h ip地址 -a 密码
info replication 查看主从信息
这里可以看到 当前角色是master 有2个slave ip信息都能看到
这样我们的redis主从就搭建完了,接下来 搭建senitnel容器
还是老样子 cd /marvel/local/docker/sentinel 进入自己需要的路径
首先新建一个sentinel的配置文件 vim sentinel.conf
port 26379 ##端口
dir /tmp
sentinel monitor mymaster (redis-master的ip) 6379 2 ## 要监控的redis mymaster是自定义集群名称
sentinel auth-pass mymaster (密码) ##集群的连接密码
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
保存后 复制到另两台 sentinel主机
接下来创建docker-compose文件
vim docker-compose.yml
version: '2'
services:
sentinel1:
image: redis ## 镜像
container_name: redis-sentinel-1 ##容器名称
network_mode: "host" ## 容器使用主机IP
ports:
- "26379:26379" ## 端口映射
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- "/marvel/local/docker/sentinel/sentinel.conf:/usr/local/etc/redis/sentinel.conf" ##将上一步的配置文件映射到容器内的配置文件
同样保存后复制到另外两台sentinel宿主机下,然后修改一下容器名称什么的
然后docker-compose up -d
启动三台sentinel容器后,随便进入一台容器
docker exec -it redis-sentinel-1 bash
redis-cli -p 26379 -h 106.14.149.48 -a marvel_2019
26379>sentinel master (集群名)
num-slaves 表示找到两个从redis
num-other-sentinels 表示找到2个哨兵
这样我们的主从+哨兵就搭建完成了
引用> https://blog.csdn.net/qq_39211866/article/details/88044546