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哨兵模式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。
推荐阅读
-
jenkins(docker 最佳实践 小团队devops如何落地)
小团队devops如何落地?我司之前小团队java技术站CI/CD路线,基于阿里云自建整体原则:先测什么后生产出来,先边缘后核心具...
-
Zend Studio使用教程:在Docker容器中调试PHP Web应用(三)
-
「docker+gdb」调试 PHP 源码,看 strva
-
使用laradock创建laravel本地开发环境
-
Docker PHP 入门实践(一)
-
docker配置PHP本地开发环境「php+nginx+mysql」
-
如何在CentOS 7上安装和使用Docker Compose
-
docker中运行php文件
-
用 Laradock搭建本地 PHP 容器开发环境&宝塔Docker一键部署
-
从零开始学习Docker- PHP环境搭建(Windows环境)