环境
因为Redis 7.2 docker
镜像里面没有配置文件,所以需要去redis
官网下载一个复制里面的redis.conf
博主这里用的是7.2.3
版本的redis.conf
,这个文件就在解压后第一层文件夹里。
redis
镜像docker pull redis:7.2
如下建立cluster
文件夹,并复制出三份conf
文件到如图位置。
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
需要注意以下几点
bridge
子网并限定了范围,如果该范围已经被使用,请更换。data
进行-v
挂载,如果要挂载,请注意宿主机对应文件夹权限问题。主节点对应的配置文件是master/redis.conf
,需要做以下修改
bind
将bind 127.0.0.1 -::1
修改为bind 0.0.0.0
,接收来自任意ip的请求。
protected-mode
将protected-mode
设置为no
,关闭保护模式,运行其他节点连接。
masterauth
将masterauth
设置为1009
,这是认证密码。
requirepass
将requirepass设置为1009,这是认证密码。