Docker-Compose部署Redis(v7.2)主从模式

文章目录

  • 一、前提准备
      • 1. redis配置文件
      • 2. 下载`redis`镜像
      • 3. 文件夹结构
  • 二、docker-compose
  • 三、主从配置
      • 1.主节点配置文件

环境

  • docker desktop for windows 4.23.0
  • redis 7.2

一、前提准备

1. redis配置文件

因为Redis 7.2 docker镜像里面没有配置文件,所以需要去redis官网下载一个复制里面的redis.conf
博主这里用的是7.2.3版本的redis.conf,这个文件就在解压后第一层文件夹里。

2. 下载redis镜像

docker pull redis:7.2

3. 文件夹结构

如下建立cluster文件夹,并复制出三份conf文件到如图位置。
Docker-Compose部署Redis(v7.2)主从模式_第1张图片

二、docker-compose

docker-compose文件具体内容如下。

version: '3.8'

networks:
  redis-network:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.30.1.0/24

services:
  redis-master:
    container_name: redis-master
    image: redis:7.2
    volumes:
      - ./master/redis.conf:/usr/local/etc/redis/redis.conf
#      - ./master/data:/data
    ports:
      - "7001:6379"
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    networks:
      redis-network:
        ipv4_address: 172.30.1.2

  redis-replica1:
    container_name: redis-replica1
    image: redis:7.2
    volumes:
      - ./replica1/redis.conf:/usr/local/etc/redis/redis.conf
#      - ./replica1/data:/data
    ports:
      - "7002:6379"
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    depends_on:
      - redis-master
    networks:
      redis-network:
        ipv4_address: 172.30.1.3

  redis-replica2:
    container_name: redis-replica2
    image: redis:7.2
    volumes:
      - ./replica2/redis.conf:/usr/local/etc/redis/redis.conf
#      - ./replica2/data:/data
    ports:
      - "7003:6379"
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    depends_on:
      - redis-master
    networks:
      redis-network:
        ipv4_address: 172.30.1.4

需要注意以下几点

  1. 这里自定义了bridge子网并限定了范围,如果该范围已经被使用,请更换。
  2. 这里没有对data进行-v挂载,如果要挂载,请注意宿主机对应文件夹权限问题。

三、主从配置

1.主节点配置文件

主节点对应的配置文件是master/redis.conf,需要做以下修改

  1. bind
    bind 127.0.0.1 -::1修改为bind 0.0.0.0,接收来自任意ip的请求。

  2. protected-mode
    protected-mode设置为no,关闭保护模式,运行其他节点连接。

  3. masterauth
    masterauth设置为1009,这是认证密码。

  4. requirepass
    将requirepass设置为1009,这是认证密码。

你可能感兴趣的:(Server运维,docker,redis,容器)