使用docker搭建redis主从的方法步骤

作者:m_nanle_xiaobudiu 时间:2023-05-02 13:15:45 

 一、构建 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 ago

STATUS      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-test
docker 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 已经可以获取了

来源:https://blog.csdn.net/m_nanle_xiaobudiu/article/details/104814617

标签:docker,redis,主从
0
投稿

猜你喜欢

  • Linux下Apache与Tomcat整合的简单方法

    2010-05-02 18:10:00
  • 使用Samba在Linux服务器上搭建共享文件服务的方法

    2023-09-29 20:39:30
  • docker搭建Zookeeper集群的方法步骤

    2023-02-14 17:04:11
  • DISCUZ架构:AJAX之ajax.js 函数之三

    2009-02-14 08:19:00
  • 壮彬浅谈——如何诊断一个网站

    2009-05-24 11:42:00
  • GoDaddy从我的旧服务器的域名服务器重新定位前,能在我的新托管帐户上运行脚本吗

    2010-04-13 12:54:00
  • 网络传言谷歌将撤走中国境内服务器

    2009-10-24 13:58:00
  • CentOS7 重新分配分区大小的实现方法

    2023-11-02 21:58:59
  • Linux lseek函数的使用详解

    2022-07-28 22:14:18
  • 百度广告优化之主题推广的主题描述

    2007-08-24 12:46:00
  • Godaddy共享主机JSP/Java支持的体验经历 Godaddy 超市

    2010-04-07 13:17:00
  • 强化网站内容质量

    2007-10-14 09:43:00
  • 如何在 Linux 中查找一个命令或进程的执行时间

    2022-12-14 16:44:26
  • 如何选择免费虚拟主机及其五点注意事项

    2008-11-27 10:24:00
  • Linux内核设备驱动之内核中链表的使用笔记整理

    2021-09-15 10:24:32
  • docker中如何将jar包构建成镜像并执行

    2022-08-22 12:48:58
  • Ubuntu 18.04下VMware Tools安装配置图文教程

    2021-01-21 23:10:15
  • 要潮也要实用 《商业大亨》必备时装宝典

    2009-11-30 10:17:00
  • 详解如何将本地JAR包添加到本地Maven仓库中

    2021-12-25 15:21:08
  • 链接诱饵实例:谈行业性归类和争议性话题

    2009-02-24 12:28:00
  • asp之家 网站运营 m.aspxhome.com