一、构建 Docker 环境

1、创建 dockerfile

FROM centos:latest
RUN groupadd -r redis && useradd  -r -g redis redis
RUN yum -y update &&  yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379

 
2、构建镜像

docker build -t docker-test .

 
3、查看当前镜像

docker iamges
REPOSITORY    TAG         IMAGE ID        CREATED             SIZE
docker-test   latest      ccebd30e466a    12 minutes ago      396MB
centos        latest      470671670cac    7 weeks ago         237MB

 
4、查看docker默认的网络类型

docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a43e79987e98        bridge              bridge              local
6b73067403dc        host                host                local
b8ad4981e57e        none                null                local

 
5、创建自定义网络类型

docker network create  --subnet=172.10.0.0/16  haveyb-network

 
二、搭建 Redis 主从

1、创建 redis-master 容器

docker run -itd --name  redis-master  --net haveyb-network  -p 6380:6379  --ip 172.10.0.2  docker-test

参数解释:

-i: 以交互模式运行容器,通常与 -t 同时使用

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d: 后台运行容器,并返回容器ID;

--name: 为创建的容器命名

--net: 指定网络模式(这里指定刚才创建的自定义网络模式)

-p: 端口映射,格式为:主机(宿主)端口:容器端口

--ip: 为容器制定一个固定的ip

后面再指定一下使用的镜像(这里使用的就是刚才创建的镜像 docker-test)

 
2、查看运行中的容器

docker ps -a
CONTAINER ID       IMAGE          COMMAND             CREATED
dc9344bbd25f     docker-test     "/bin/bash"          2 minutes agoSTATUS           PORTS                         NAMES
Up 2 minutes     0.0.0.0:6380->6379/tcp        redis-master

注:查看某个网络下容器的ip地址

docker network inspect haveyb-network

 
3、创建 redis-slave1、redis-slave2 容器

docker run -itd --name  redis-slave1  --net haveyb-network  -p 6381:6379  --ip 172.10.0.3  docker-testdocker run -itd --name  redis-slave2  --net haveyb-network  -p 6382:6379  --ip 172.10.0.4  docker-test

 
4、配置 redis-master 容器

(1)进入redis-master 容器

docker exec -it redis-master bash

注:退出容器 `exit`

(2)修改redis.conf 配置文件

vi /etc/redis.conf

(3)修改参数 bind 127.0.0.1 为 0.0.0.0

bind 0.0.0.0

(4)设置主redis 密码

requirepass YourPasswordSettings

(5)启动主redis

redis-server /etc/redis.conf &

(6)redis-cli

redis-cli
auth yourPasswordSettings

 
5、配置 redis-slave1

(1)进入redis-slave1 容器

docker exec -it redis-slave1 bash

(2)修改redis.conf 配置文件

vi /etc/redis.conf

(3)修改参数 bind 127.0.0.1 为 0.0.0.0

bind 0.0.0.0

(4)设置 masterauth,添加以下代码(主redis设置密码后,从redis连接需要此参数验权)

masterauth yourPasswordSettings

(5)设置 slaveof (设置主 redis 的 ip 和 port)

slaveof 172.10.0.2 6379

(5)启动从redis

redis-server /etc/redis.conf &

(6)redis 客户端

redis-cli

 
 6、配置 redis-slave2

同配置 redis-slave1

 
7、在redis -cli中执行 `info replication` 可以查看主从信息

redis-master

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.10.0.3,port=6379,state=online,offset=3105,lag=1
slave1:ip=172.10.0.4,port=6379,state=online,offset=3105,lag=1
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3105
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3105
127.0.0.1:6379> 

redis-slave1

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:172.10.0.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:3203
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3203
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3203
127.0.0.1:6379> 

 
8、在 redis-master 中写入key,redis-slave1 和 redis-slave2 已经可以获取了

 

 

使用docker搭建redis主从相关推荐

  1. Docker搭建Redis主从模式

    文章目录 Docker搭建Redis主从模式 Docker安装Redis 主从模式(简易模式) 特点 工作机制 搭建 redis-master节点 redis-slave-1节点 redis-slav ...

  2. Docker搭建Redis主从同步详细教程

    文章目录 介绍: redis主从同步概念 redis主从同步原理 redis主从同步流程图 搭建redis主从详细步骤: 拉取redis镜像 创建所需文件夹,用于映射容器相应文件路径 运行容器指定挂载 ...

  3. 基于docker搭建redis哨兵模式

    github学习笔记 Redis 哨兵架构 1. redis 哨兵模式介绍 1) 哨兵模式是Redis的高可用方式,哨兵节点是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点.2) ...

  4. docker+网桥+redis主从+哨兵模式

    docker+网桥+redis主从+哨兵模式 我是在两台服务器上实验的,一台服务器的ip是192.168.213.144,另一台服务器的ip是192.168.213.145 1. 搭建网桥 关于第一部 ...

  5. docker搭建mysql主从

    前言 为什么要使用Docker搭建? 不管是使用源码安装还是离线安装,在服务器上安装一个mysql总会花费不少的时间,而且对于新人来说,中间稍不注意哪一步出错了就导致安装失败,我之前也是安装过2次才成 ...

  6. docker搭建redis高可用集群

    目标:docker搭建redis高可用集群 1.架构:六个redis容器,三主三从,主从复制,主机宕机从机自动替代 2.网络架构设计:设计一个专属redis的docker网络 docker netwo ...

  7. 使用docker搭建redis集群

    使用docker搭建redis集群有两种,一种是单机多个docker容器,一种是多个机器的集群 基础知识 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务, ...

  8. 基于Docker搭建Redis集群(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  9. docker搭建Redis的主从集群

    服务器:Centos7 前提:selinux关掉 一,安装docker并配置镜像加速(我用的阿里加速) [root@localhost ~]# yum -y install docker [root@ ...

最新文章

  1. 根据ip获取地理位置
  2. 【转载】adb shell dumpsys 查看内存
  3. java md5 密钥_java加密算法--MD5加密和哈希散列带秘钥加密算法源码
  4. 服务化改造实践(二)| Dubbo + Kubernetes
  5. 传智播客 import导入模块 学习笔记
  6. 你分得清楚Maven的聚合和继承吗?
  7. [转] 由Request Method:OPTIONS初窥CORS
  8. mysql多条件顺序_mysql顺序由多个条件
  9. Windows定时开机 命令 自动开机
  10. 全国计算机三级数据库技术
  11. 小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)
  12. mp4 avc格式_sps_pps
  13. 推荐一个app,收纳杭州最全登山地图!附亲测过的亲子徒步路线推荐
  14. 计算机新生导论感言,新生入学感言范文精选
  15. 如何利用DTM预览功能来验证新版本的配置是否正确?
  16. Typora 一款非常简洁,非常适合程序员使用的markdown文档书写工具
  17. 数据库-内外连接及左右连接的区别
  18. logistic函数,sigma函数性质
  19. 少年五年升阿里 P8,他如何从低谷登上“光明顶”?
  20. 【图论最短路】【CQBZOJ 1633】【图论专项赛】位图

热门文章

  1. oracle 11g(二)安装过程
  2. 菜鸟修炼C语言小设计之——工资统计
  3. 调用带有 out 参数的方法时检查弃元参数
  4. .NET6之MiniAPI(十六):数据保护
  5. 真快!10秒内将k8s集群运行起来
  6. Azure data studio 跨平台数据库管理工具试用
  7. Blazor 中如何下载文件到浏览器
  8. 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目
  9. Blazor WebAssembly 3.2.0 已在塔架就位 将发射新一代前端SPA框架
  10. Beetlex之redis驱动