docker 搭建 redis 主从节点

拉取 redis 镜像,比如拉取 redis v6.0.6 版本

docker pull redis:6.0.6
docker images

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        6.0.6    7f7ce731b26f   4 weeks ago   158MB

在你的工作目录下面创建 redis/write 和 redis/read 目录

mkdir -p redis/write && mkdir -p redis/read

writeread 目录中, 下载 redis 对应版本的 redis.conf 文件,地址 这个链接仅替换中间版本号即可,根据你本地的 redis 版本号

其次编辑 write 和 read 目录中的 redis.conf 文件

write redis.conf


# 指定 redis 接受来自该ip的请求,如果设置为0.0.0.0则默认接受所有来源的请求
bind 0.0.0.0

# write 端口,默认 6379 
port 6380

# 是否开启保护模式,要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,
# 拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭,设置为no
protected-mode no

read redis.conf


# 指定 redis 接受来自该ip的请求,如果设置为0.0.0.0则默认接受所有来源的请求
bind 0.0.0.0

# read 端口,默认 6379 
port 6381

# 绑定主节点的IP和端口号,注意因为容器重新启动会变更 write 节点的 IP 地址,所以建议主节点启动后使用  `docker inspect 容器ID` 查看对应的 IP
replicaof 172.17.0.3 6380 # 172.17.0.3 为我本地的 write 节点的 ip 地址

# 从节点是否具有只读的功能,如果为yes,从节点只可以读取,不可以写入
replica-read-only yes

启动 read 和 write 节点

write


docker run -p 6380:6380 -d --name redis-6380 -v /Users/yourname/workspace/redis/write/redis.conf:/redis.conf --restart=always redis redis-server /redis.conf

read 注意启动完 write 节点后,需要使用 docker inspect writeid查看容器 IP 地址,然后替换到 read 节点的 replicaof 后面


docker run -p 6381:6381 -d --name redis-6381 -v /Users/yourname/workspace/redis/read/redis.conf:/redis.conf --restart=always redis redis-server /redis.conf

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