Docker配置redis哨兵模式的方法(多服务器上)

 更新时间:2021年02月23日 11:52:10   作者:蓝步芦  
这篇文章主要介绍了Docker配置redis哨兵模式的方法(多服务器上),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言

之前学习的redis一直是在单一服务器上运行的,而且是直接部署在服务器上。听说用docker会让配置过程更轻松 (并没有)这次就在用Docker的基础上配置Redis一主一从三哨兵。本篇为配置数据节点,即一主一从两个节点。

条件

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

  • 服务器1:8.131.78.18
  • 服务器2:8.131.69.106
  • 服务器3:8.131.71.196
  • 端口号7000、17000已在安全组上放行(阿里云)
  • 环境:centos8.0

安装Docker

逐行执行以下指令:

# 1. 更新编译环境
yum -y install gcc

# 2. 同上
yum -y install gcc-c++

# 3. 安装docker
# 3.1 卸载旧版本
yum remove docker \
   docker-client \
   docker-client-latest \
   docker-common \
   docker-latest \
   docker-latest-logrotate \
   docker-logrotate \
   docker-engine
# 3.2 安装需要的安装包
yum install -y yum-utils
# 3.3设置镜像的仓库,推荐使用国内的镜像,比较快
yum-config-manager \
 --add-repo \
 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3.4 更新yum软件包索引,功能是将软件包缓存在本地一份
yum makecache 
# 3.5 安装docker相关的 docker-ce 社区版
yum install -y https://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 安装
yum install docker-ce docker-ce-cli containerd.io
# 3.7 启动docker
systemctl start docker
# 3.8 设置为后台启动
systemctl enable docker 
# 3.9 使用docker version查看是否按照成功
docker version
# 3.10 测试(可以不做)
docker run hello-world
# 3.11 卸载删除(仅供参考,本次不做)
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

# 4. 配置加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors": ["https://qdxc3615.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

配置redis主从节点

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

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

# scp local_file remote_username@remote_ip:remote_folder
scp redis.conf root@58.131.71.196:/blue/redis02

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

cd /
mkdir blue && cd blue
mkdir redis02 && cd redis02

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

vi Dockerfile

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

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

# 安装一些环境
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install procps --assume-yes

VOLUME ["/data"]

WORKDIR /etc/redis

# 开放端口7000
EXPOSE 7000

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

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

# 注释掉bind 127.0.0.1 
# bind 127.0.0.1

port 7000

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

pidfile /var/run/redis_7000.pid

# 需要设置以下两处密码,密码要一致
requirepass testmaster123
masterauth testmaster123

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

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

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

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

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

# 启动容器
docker run -d -p 7000:7000 --name redis-test test

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

#进入容器内部
docker exec -it redis-test /bin/bash

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

# 查看运行的线程
ps -ef

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

# 输入密码
auth testmaster123

# 查看信息
info replication

# 以下为从节点返回的信息
# 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哨兵模式(多服务器上)的文章就介绍到这了,更多相关Docker配置redis哨兵模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Windows安装Docker全过程

    Windows安装Docker全过程

    这篇文章主要介绍了Windows安装Docker全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker中忽略文件的实现

    Docker中忽略文件的实现

    Docker忽略文件是指在Docker镜像构建过程中,用于忽略指定文件或目录的一种机制,本文主要介绍了Docker中忽略文件的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 一台虚拟机基于docker搭建大数据HDP集群的思路详解

    一台虚拟机基于docker搭建大数据HDP集群的思路详解

    这篇文章主要介绍了一台虚拟机基于docker搭建大数据HDP集群 ,本篇文章主要讲了大数据集群搭建的架构设计和实现思路部分,后面文章会探讨上层应用的构建,需要的朋友可以参考下
    2022-11-11
  • 使用Docker安装向量数据库milvus并且安装图形化界面的方法

    使用Docker安装向量数据库milvus并且安装图形化界面的方法

    文章介绍了如何在Windows上使用Docker安装并配置Milvus向量数据库,包括启用WSL2、安装Ubuntu、配置Docker仓库、安装Milvus服务端和用户图形界面Attu,并提供了一个修改后的Dockerfile以提高Attu的安装速度,感兴趣的朋友一起看看吧
    2025-02-02
  • 使用Docker构建企业级自定义镜像的方法

    使用Docker构建企业级自定义镜像的方法

    这篇文章主要介绍了使用Docker构建企业级自定义镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • docker安装后导致的网络问题及解决

    docker安装后导致的网络问题及解决

    这篇文章主要介绍了docker安装后导致的网络问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker可视化图形工具portainer详解

    docker可视化图形工具portainer详解

    Portainer 是一个可视化容器镜像的图形管理工具,利用 Portainer 可以轻松构建,管理和维护 Docker 环境,接下来通过本文给大家介绍docker可视化图形工具portainer知识,感兴趣的朋友一起看看吧
    2021-11-11
  • Docker新手初探之常用命令实践记录

    Docker新手初探之常用命令实践记录

    这篇文章主要给大家介绍了关于Docker新手初探之常用命令实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • Docker开启安全的TLS远程连接访问方式

    Docker开启安全的TLS远程连接访问方式

    本篇文章给大家介绍Docker开启安全的TLS远程连接,重新加载docker配置方法,教大家如何建立基于TLS数字签名的安全连接,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • Docker占满磁盘空间的问题解决办法

    Docker占满磁盘空间的问题解决办法

    本篇文章主要介绍了Docker占满磁盘空间的问题解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论