1. 拉取redis镜像-
docker pull redis:last
2.创建配置文件目录:
主库
mkdir -p /home/data/docker/redis_master/config
#拉取redis.conf文件命令:
wget -c http://download.redis.io/redis-stable/redis.conf
从库1
mkdir p /home/data/docker/redis_sale_01/config
#拉取redis.conf文件命令:
wget -c http://download.redis.io/redis-stable/redis.conf
从库2
mkdir p /home/data/docker/redis_sale_02/config
#拉取redis.conf文件命令:
wget -c http://download.redis.io/redis-stable/redis.conf
修改redis.conf节点的配置文件
将bind 127.0.0.1注释掉 或改为0.0.0.0 允许外部访问
protected-mode no #修改为 no,默认为yes 开启保护模式
daemonize no #关闭守护进程方式启动
requirepass 123 #开启密码校验
port 端口号
masterauth 123 #master节点密码
replicaof 192.168.1.23 6379 #配置master ip和port(从库才需要配置)
3.启动容器
docker run -d -p 3389:3389 -v /home/data/docker/redis_master/config/redis.conf:/usr/local/etc/redis/redis.conf -v /home/data/docker/redis_master/config/data:/data --name redis_master redis redis-server /usr/local/etc/redis/redis.conf
docker run -d -p 19200:19200 -v /home/data/docker/redis_sale_01/config/redis.conf:/usr/local/etc/redis/redis.conf -v /home/data/docker/redis_sale_01/config/data:/data --name redis_sale_01 redis redis-server /usr/local/etc/redis/redis.conf
docker run -d -p 19300:19300 -v /home/data/docker/redis_sale_02/config/redis.conf:/usr/local/etc/redis/redis.conf -v /home/data/docker/redis_sale_02/config/data:/data --name redis_sale_02 redis redis-server /usr/local/etc/redis/redis.conf
run:创建一个新的容器并运行一个命令
–name:给启动的容器起名
-v:挂载目录 将当前宿主机的conf文件挂载到容器conf文件
-d:后台运行容器,并返回容器ID;
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
最后以配置文件方式启动redis
判断是否成功
docker exec -it redis_master /bin/bash 进入容器
redis-cli -h 127.0.0.1 -p 19300
auth rdis密码
role--->查看当前信息
4.配置哨兵 建议配置单数 一般为3个 集群
新建目录 mkdir p /home/data/docker/sentinel //这里只模拟一个,其他两个复制就行
获取 wget -c http://download.redis.io/redis-stable/sentinel.conf
修改sentinel.conf配置文件
sentinel monitor mymaster 39.104.83.26(主库的ip) 3389(主库的端口) 1(多少数量成功)
sentinel auth-pass mymaster(master名称 每个哨兵必须一样) 123456(redis密码)
sentinel deny-scripts-reconfig yes
replica-read-only no(是否只允许可读)
sentinel auth-pass mymaster 123456 #连接master密码(如果主库配置了密码 就必须配置)
启动哨兵
docker run -p 35672:35672 --restart=always --name sentinel-1 -v /home/data/docker/sentinel/sentinel.conf:/etc/redis/sentinel.conf -v /home/data/docker/sentinel/sentinel.conf-data:/data -d redis redis-sentinel /etc/redis/sentinel.conf
测试停掉主库 看下从库中 有没有变为主库
恢复主库 主库变为从库 添加到新主机的从库中