1.准备工作
docker image 选择:
https://hub.docker.com/_/redis?tab=tags&page=1&ordering=last_updated
redis 配置等信息参照:
https://github.com/redis/redis
下载redis镜像(不带tag标签则表示下载latest版本)
docker pull redis:6.0.9-alpine
从github 下载最新的redis.conf,注意重要参数
# 端口
port 6379
# 密码
requirepass Mypwd@123456
# 支持数据持久化
appendonly yes
# 关闭守护进程
daemonize no
# 默认多少个数据库
databases 16
# 从库时需要增加主库配置
# 主库密码(一个集群密码需要保持一致)
masterauth Mypwd@123456
# 主库地址和端口
slaveof 172.17.0.1 6379
启动 redis 主从库
docker run -d -p 7379:6379 --name redis_0 -v /usr/local/www/docker/redis_0/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/www/docker/redis_0/data:/data --restart always redis:6.0.9-alpine redis-server /usr/local/etc/redis/redis.conf
docker run -d -p 7380:6380 --name redis_1 -v /usr/local/www/docker/redis_1/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/www/docker/redis_1/data:/data --restart always redis:6.0.9-alpine redis-server /usr/local/etc/redis/redis.conf
docker run -d -p 7381:6380 --name redis_2 -v /usr/local/www/docker/redis_2/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/www/docker/redis_2/data:/data --restart always redis:6.0.9-alpine redis-server /usr/local/etc/redis/redis.conf
从github 下载最新的sentinel.conf,注意重要参数
# 端口
port 26379
# 关闭守护进程
daemonize no
# 设定监听的redis集群的名称(mymaster)+IP+主库端口+最少从库数量
sentinel monitor mymaster 172.17.0.1 6379 2
# 设定监听的redis集群的密码(集群中主库和从库密码需要保持一致)
sentinel auth-pass mymaster Mypwd@123456
启动 sentinel 主从库
docker run -d -p 26379:26379 --name sentinel_0 -v /usr/local/www/docker/sentinel_0/sentinel.conf:/usr/local/etc/redis/sentinel.conf --restart always redis:6.0.9-alpine redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run -d -p 26380:26380 --name sentinel_1 -v /usr/local/www/docker/sentinel_1/sentinel.conf:/usr/local/etc/redis/sentinel.conf --restart always redis:6.0.9-alpine redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run -d -p 26381:26381 --name sentinel_2 -v /usr/local/www/docker/sentinel_2/sentinel.conf:/usr/local/etc/redis/sentinel.conf --restart always redis:6.0.9-alpine redis-sentinel /usr/local/etc/redis/sentinel.conf
注意点:
1.容器和容器之前通信ip地址使用 ifconfig 之后的 docker0的地址
结果验证:
配置文件详细: