docker-compose+redis一主两从配置+哨兵模式(跨服务器)

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 查看主从信息
docker-compose+redis一主两从配置+哨兵模式(跨服务器)_第1张图片
这里可以看到 当前角色是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 (集群名)
docker-compose+redis一主两从配置+哨兵模式(跨服务器)_第2张图片
num-slaves 表示找到两个从redis
num-other-sentinels 表示找到2个哨兵

这样我们的主从+哨兵就搭建完成了

引用> https://blog.csdn.net/qq_39211866/article/details/88044546

你可能感兴趣的:(docker-compose+redis一主两从配置+哨兵模式(跨服务器))