前置准备:3台机器
192.168.75.128 6379 (主)
192.168.75.130 6379 (从)
192.168.75.131 6379 (从)
1、拉取redis镜像
docker pull redis
2、配置Redis启动配置文件,此处我创建一个专用目录,存放Redis相关数据及配置(分别在三台机新建redis.conf文件)
mkdir /usr/local/redis/redis.conf
#在此目录下现在redis.conf文件
http://download.redis.io/redis-stable/redis.conf
下载后,进入文件修改下面3个参数(在非编辑状态下,采用 /bind 来搜索字符串位置 )
vi /usr/local/redis/redis.conf
# 修改下面三个配置参数
#bind 127.0.0.1# 如果bind选项为空的话,则允许所有来自于可用网络接口的连接(bind 0.0.0.0与为空一样的效果)
protected-mode no#保护模式,若为yes,只允许本地客户端连接
appendonly yes#开启后,Redis会把每次写入的数据在接收后都写入
appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里
#slaveof 192.168.75.128 6379 #Redis主机(Master)IP 端口(savle需要添加) 主机(slave)IP redis.conf与主机(Master的区别)
3、分别启动三台机的Redis服务
docker run --restart always --name redis -p 6379:6379 -v /usr/local/redis:/data -d redis redis-server /data/redis.conf
3、查看容器服务
docker ps
#验证服务器之间是否正常通信
在192.168.75.128服务器检验 192.168.75.130、 192.168.75.131
docker exec -it redis redis-cli -h 192.168.75.130 -p 6379
docker exec -it redis redis-cli -h 192.168.75.131 -p 6379
在192.168.75.130服务器检验 192.168.75.128、 192.168.75.131
docker exec -it redis redis-cli -h 192.168.75.128 -p 6379
docker exec -it redis redis-cli -h 192.168.75.131 -p 6379
在192.168.75.131服务器检验 192.168.75.128、 192.168.75.130
docker exec -it redis redis-cli -h 192.168.75.128 -p 6379
docker exec -it redis redis-cli -h 192.168.75.130 -p 6379
成功如下:
若失败则需排查问题:
1、防火墙是否关闭
2、redis配置bind通信是否开启
#进入master服务查看主从服务
docker exec -it redis redis-cli info replication
此时服务器(slave)已经挂载
#进入master服务查看主从服务
docker exec -it redis redis-cli info replication