Docker部署Redis哨兵模式

本篇文章给大家分享的是有关Docker部署Redis哨兵模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

条件

三台服务器(因为需要至少三个哨兵保证安全性)【可以在阿里云上租几个小时】

Docker部署Redis哨兵模式

  • 服务器1:8.131.78.18

  • 服务器2:8.131.69.106

  • 服务器3:8.131.71.196

  • 端口号7000、17000已在安全组上放行(阿里云)

  • 环境:centos8.0

安装Docker

逐行执行以下指令:

#1.更新编译环境
yum-yinstallgcc

#2.同上
yum-yinstallgcc-c++

#3.安装docker
#3.1卸载旧版本
yumremovedocker\
docker-client\
docker-client-latest\
docker-common\
docker-latest\
docker-latest-logrotate\
docker-logrotate\
docker-engine
#3.2安装需要的安装包
yuminstall-yyum-utils
#3.3设置镜像的仓库,推荐使用国内的镜像,比较快
yum-config-manager\
--add-repo\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3.4更新yum软件包索引,功能是将软件包缓存在本地一份
yummakecache
#3.5安装docker相关的docker-ce社区版
yuminstall-yhttps://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
#3.6安装
yuminstalldocker-cedocker-ce-clicontainerd.io
#3.7启动docker
systemctlstartdocker
#3.8设置为后台启动
systemctlenabledocker
#3.9使用dockerversion查看是否按照成功
dockerversion
#3.10测试(可以不做)
dockerrunhello-world
#3.11卸载删除(仅供参考,本次不做)
yumremovedocker-cedocker-ce-clicontainerd.io
rm-rf/var/lib/docker

#4.配置加速器
sudomkdir-p/etc/docker
sudotee/etc/docker/daemon.json<<-'EOF'
{
"registry-mirrors":["https://qdxc3615.mirror.aliyuncs.com"]
}
EOF
sudosystemctldaemon-reload
sudosystemctlrestartdocker

配置redis主从节点

我们使用的服务器是服务器1和服务器3(本来是一主两从,我把服务器2关了)。

TIPS: 对于xshell可以使用右键选择发送键输入到所有会话,这样就不需要配置两遍了。或者使用scp语句将配置好的文件共享给其他服务器:

#scplocal_fileremote_username@remote_ip:remote_folder
scpredis.confroot@58.131.71.196:/blue/redis02

1.首先创建文件夹,注意不要放在home路径下,否则容易因为权限问题是容器运行失败。我创建的目录为/blue/redis02,指令比较简单:

cd/
mkdirblue&&cdblue
mkdirredis02&&cdredis02

2.创建Dockerfile,Dockerfile是为了加载一些我们需要的环境。

viDockerfile

#Dockerfile内容如下:
#从基础镜像redis继承
FROMredis
MAINTAINERblue<blue@email.com>

#将Dockerfile所在目录下的文件复制到容器/usr/local/etc/redis目录下
COPYredis.conf/usr/local/etc/redis/redis.conf

#安装一些环境
RUNapt-getupdate
RUNapt-getinstall-yvim
RUNapt-getinstallprocps--assume-yes

VOLUME["/data"]

WORKDIR/etc/redis

#开放端口7000
EXPOSE7000

#使用配置文件启动
CMD["redis-server","/usr/local/etc/redis/redis.conf"]

3.从官网上下载一个redis.conf并做如下修改。redis.conf则是redis的一些配置,这个和单机的redis一主一从三哨兵的配置基本相同。

#注释掉bind127.0.0.1
#bind127.0.0.1

port7000

#这里如果是yes会影响使用配置文件启动
daemonizeno

pidfile/var/run/redis_7000.pid

#需要设置以下两处密码,密码要一致
requirepasstestmaster123
masterauthtestmaster123

#修改保护模式,如果是yes会导致外部服务器无法访问
protected-modeno

#对于服务器3,还需要加上一句,表示是服务器1的从服务器
#slaveof主.机.I.P端口
slaveof8.131.78.187000

4.保存好以上配置之后可以使用以下语句创建镜像,这个过程时间比较长,需要耐心等待:

#应该用dockerbuild-tmyredis.比较有辨识度的,但是作为测试的时候就成功了,也不想修改了。这句话是根据我们的Dockerfile创建一个新的镜像。可以把他push到仓库去,这样下次可以直接拉取。
dockerbuild-ttest.

5.使用如下语句启动容器:

#启动容器
dockerrun-d-p7000:7000--nameredis-testtest

#以下语句查看运行中的容器
dockerps

#进入容器内部
dockerexec-itredis-test/bin/bash

6.在容器内部可以使用以下语句查看在运行的线程:

#查看运行的线程
ps-ef

#使用redis客户端访问7000端口
redis-cli-p7000

#输入密码
authtestmaster123

#查看信息
inforeplication

#以下为从节点返回的信息
#Replication
role:slave
master_host:8.131.78.18
master_port:7000
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:28
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:438c700922a30ebbc66ee5c89a176c426924b2a7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28

以上就是Docker部署Redis哨兵模式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。

发布于 2021-02-24 07:36:00
收藏
分享
海报
0 条评论
162
上一篇:redis主从同步配置 下一篇:使用javascript怎么将非数值转换为数值
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码