美文网首页我爱编程
基于docker创建redis主从复制并启动哨兵

基于docker创建redis主从复制并启动哨兵

作者: websky | 来源:发表于2018-03-22 22:02 被阅读0次

本次搭建的结构为:
1个master,2个slave
哨兵 sentinel 也运行在这三个容器中

第一步定制镜像


定制镜像只是为了后面使用起来更方便
首先运行一个redis容器

docker run --name redis-A -p 6379:6379 -d redis --port 6379

使用 docker ps 命令可以看到容器已经运行
然后运行

docker exec -it redis-A /bin/bash

进入容器开始定制我们的redis镜像,主要是指容器中哨兵的配置.
我使用的是创建一个脚本来启动 sentinel

touch start-sentinel.sh

使用vim 编辑脚本。这个容器中还要安装vim

mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >>/etc/apt/sources.list
#更新安装源
apt-get update 
#使用强制安装
apt-get install -f vim

编辑脚本:

#!/bin/sh
#master ip
host=$1
#master port
port=$2
#sentinel 端口
sport=$3
#sentinel 端口不设置给
if [ ! -n "$sport" ];then
sport=26379
fi
cd /
#开始写入配置文件
echo "sentinel monitor mymaster $host $port 2" >sentinel.conf
echo "port $sport">>sentinel.conf
#启动哨兵 &可以后台运行
redis-sentinel /sentinel.conf &

执行:chmod +x start-sentinel.sh 赋予执行权限
输入 ps -ef|grep redis 查看运行情况:

到此镜像定制完毕,重新提交镜像 以便使用

#先停止容器 
docker stop redis-A  
#将容器commit成为一个镜像  
docker commit redis-A redis-a  
#运行容器 
docker run -p 8080:8080 -p 8081:8081 -v /home/data/:/home/data/ -dt newImageB

docker images命令就可以看到刚刚提交的镜像


第二步 创建节点

使用我们定制的容器开始创建3个节点

docker run --name redis-node1 -p 7000:7000 -p 27000:27000 -d redis-a --port 7000
docker run --name redis-node2 -p 7001:7001 -p 27001:27001 -d redis-a --port 7001
docker run --name redis-node3 -p 7002:7002 -p 27002:27002 -d redis-a --port 7002

这里我一映射了哨兵的端口是为了测试spring 集成redis(随后会写)

#先查看三个节点对应的ip地址
docker inspect redis-node1
#我的是
#172.17.0.4 7000
#172.17.0.5 7001
#172.17.0.6 7002
#进入node2,node3 分别设置SLAVE
docker exec -it redis-node2 /bin/bash
redis-cli -p 7001
SLAVEOF 172.17.0.4 7000

然后进入node1
可以看到已结链接到两个从节点

最后用脚本分别启动哨兵

cd /
#哨兵端口已创建容器时输入为准
./start-sentinel.sh 172.17.0.4 7000 27000

可以看到3个哨兵已经启动。

停掉 redis-node1容器 可以看到 重新选举出了新的master



记录下来这些东西,同时分享给大家。
后面还会分享spring如何连接redis 集群

相关文章

  • 基于docker创建redis主从复制并启动哨兵

    本次搭建的结构为:1个master,2个slave哨兵 sentinel 也运行在这三个容器中 第一步定制镜像 定...

  • redis主从 + Sentinel 哨兵模式

    环境介绍 docker配置redis主从复制(一主两从),启动Sentinel(哨兵模式,3个sentinel) ...

  • Redis -- 实战篇

    一、基于Docker启动一个Redis服务 二、实现Redis主从模式 三、实现Redis哨兵模式 四、实现Red...

  • redis(二)

    Redis用户认证 禁用危险命令 主从复制的过程 主从复制的部署 哨兵 Redis哨兵+主从+密码 Redis哨兵...

  • docker安装redis并设置密码

    1、搜索redis镜像docker search redis 2、拉取镜像 3、创建并启动容器 设置密码为: 4、...

  • 基于Docker搭建Redis一主两从三哨兵

    基于Docker搭建Redis一主两从三哨兵 这段时间正在学习Redis和容器相关的内容,因此想通过docker搭...

  • Redis的高可用

    Redis主从复制 什么是主从复制 Redis有三种集群方案,主从复制,哨兵,cluster集群,主从复制是指将一...

  • 使用 Docker 搭建高可用 Redis 集群

    上一篇文章描述了使用 Docker 基于哨兵模式搭建高可用的Redis,这一篇文章则使用Docker搭建Redis...

  • docker配置redis哨兵模式

    系统环境 阿里云CentOS7 redis哨兵模式说明 使用docker启动3个redis服务器,一个master...

  • redis

    redis配置文件概括说明 redis 常用配置 redis 主从复制 配置文件修改 手动修改 redis 哨兵部...

网友评论

    本文标题:基于docker创建redis主从复制并启动哨兵

    本文链接:https://www.haomeiwen.com/subject/ivpzqftx.html