环境:windows docker desktop,版本:19.03.12
1. 下载redis的docker镜像
docker pull redis:6.0.8
2. 设置docker共享目录
- docker中的共享目录,即能将宿主的文件同步到docker中的文件目录
- docker desktop–>Resources–>File sharing–>选择相关目录,如:I:\docker
- 创建相关数据持久化目录,如:I:\docker\mydata
3. 在共享目录创建相关目录
创建redis的config和data目录,并将相关版本的配置文件redis.conf拷贝到config目录下,如:
I:\docker\mydata\redis\config,
I:\docker\mydata\redis\data.
具体目录结构如下:
4. 修改redis.conf文件配置项
说明:以下为最基本配置项调整,后续可以根据系统业务需要,对其他配置项进行调整。
一、主节点(master)
- #bind 127.0.0.1,注释掉默认配置
- protected-mode no,保护模式改为no
- appendonly yes,实时持久化支持
- logfile “redis.log”,日志文件
说明:前两项配置处理主要是为了主从节点间能够互相访问。
二、从节点(slave)
- replicaof 172.17.0.2 6379
- 访问主节点的ip及端口号
- 主节点ip的获得,需要主节点正常启动后,可以通过如下命令获得:
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis-master-6480
- 其他配置项调整与主节点一样
说明:可以先正常启动主节点,再进行从节点的配置项调整。
5. 使用docker命令启动
- master节点启动
docker run --name redis-master-6480 -p 6480:6379
-v I:\docker\mydata\redis\config\redis-6480.conf:/usr/local/etc/redis.conf
-v I:\docker\mydata\redis\data\6480:/data
-d redis:6.0.8 redis-server /usr/local/etc/redis.conf
说明:
/usr/local/etc在docker容器中是存在的,因此,可以将其存放redis.conf文件
/data是docker容器默认目录,不能随意改动
- slave节点启动
docker run --name redis-slave-6481 -p 6481:6379
-v I:\docker\mydata\redis\config\redis-6481.conf:/usr/local/etc/redis.conf
-v I:\docker\mydata\redis\data\6481:/data
-d redis:6.0.8 redis-server /usr/local/etc/redis.conf
6. 进入redis容器使用redis-cli连接访问
- 进入master节点
docker exec -it redis-master-6480 redis-cli -p 6379
主节点信息:
- 进入slave节点
docker exec -it redis-slave-6481 redis-cli -p 6379
从节点信息:
7. 验证主从复制
8. over
至此,通过docker安装redis主从复制完成。
宿主机上端口使用: