Redis® Sentinel 是 Redis 的高可用性解决方案,提供监控、通知、自动故障转移以及客户端配置提供等功能。它通过监控 Redis 主从节点状态,在主节点故障时自动将从节点提升为新主节点,确保 Redis 服务持续可用。
Redis® Sentinel 官方概述
免责声明:Redis 是 Redis Ltd. 的注册商标。Bitnami 对其的使用仅为参考目的,不表示 Redis Ltd. 的任何赞助、认可或关联。
redis 用户运行容器,增强安全性consoledocker run --name redis-sentinel -e REDIS_MASTER_HOST=redis bitnami/redis-sentinel:latest
警告:此快速配置仅适用于开发环境。生产环境中应修改默认凭据,并参考环境变量部分进行安全配置。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,通过新的Bitnami Secure Images 计划提供精选的安全加固镜像。过渡期变更如下:
更多详情请参见 https://github.com/bitnami/containers/issues/83267%E3%80%82
从 Docker Hub 拉取最新版:
consoledocker pull bitnami/redis-sentinel:latest
拉取特定版本(需替换 [TAG] 为具体版本号):
consoledocker pull bitnami/redis-sentinel:[TAG]
https://hub.docker.com/r/bitnami/redis-sentinel/tags/
consolegit clone https://github.com/bitnami/containers.git cd bitnami/redis-sentinel/[VERSION]/[OS] # 替换为具体版本和操作系统 docker build -t bitnami/redis-sentinel:latest .
步骤 1:创建 Docker 网络
consoledocker network create app-tier --driver bridge
步骤 2:启动 Redis 主节点
consoledocker run -d --name redis-server \ -e ALLOW_EMPTY_PASSWORD=yes \ # 开发环境允许空密码(生产环境禁用) --network app-tier \ bitnami/redis:latest
步骤 3:启动 Redis Sentinel
consoledocker run -it --rm \ -e REDIS_MASTER_HOST=redis-server \ # 指向 Redis 主节点容器名 -e REDIS_MASTER_SET=mymaster \ # 主节点集名称(默认 mymaster) -e REDIS_SENTINEL_QUORUM=2 \ # 故障转移法定人数(默认 2) --network app-tier \ bitnami/redis-sentinel:latest
创建 docker-compose.yml:
yamlversion: '3.8' networks: app-tier: driver: bridge services: redis-master: image: bitnami/redis:latest environment: - ALLOW_EMPTY_PASSWORD=yes # 生产环境需设置 REDIS_PASSWORD networks: - app-tier volumes: - redis-master-data:/bitnami/redis/data redis-sentinel: image: bitnami/redis-sentinel:latest depends_on: - redis-master environment: - REDIS_MASTER_HOST=redis-master - REDIS_MASTER_SET=mymaster - REDIS_SENTINEL_QUORUM=2 - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000 # 5秒无响应判定为下线 networks: - app-tier volumes: - redis-sentinel-data:/bitnami/redis-sentinel/data volumes: redis-master-data: redis-sentinel-data:
启动服务:
consoledocker-compose up -d
可定制环境变量
| 名称 | 描述 | 默认值 |
|---|---|---|
REDIS_SENTINEL_DATA_DIR | Redis 数据目录 | ${REDIS_SENTINEL_VOLUME_DIR}/data |
REDIS_SENTINEL_DISABLE_COMMANDS | 禁用的 Redis 命令 | nil |
REDIS_SENTINEL_DATABASE | 默认数据库名 | redis |
REDIS_SENTINEL_AOF_ENABLED | 是否启用 AOF 持久化 | yes |
REDIS_SENTINEL_HOST | Sentinel 监听主机 | nil |
REDIS_SENTINEL_MASTER_NAME | 主节点名称 | nil |
REDIS_SENTINEL_PORT_NUMBER | Sentinel 监听端口 | $REDIS_SENTINEL_DEFAULT_PORT_NUMBER |
REDIS_SENTINEL_QUORUM | 故障转移法定人数(最小 Sentinel 节点数) | 2 |
REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS | 节点判定为下线的超时时间(毫秒) | 60000 |
REDIS_SENTINEL_FAILOVER_TIMEOUT | 故障转移超时时间(毫秒) | 180000 |
REDIS_SENTINEL_MASTER_REBOOT_DOWN_AFTER_PERIOD | 主节点重启超时时间(毫秒) | 0 |
REDIS_SENTINEL_RESOLVE_HOSTNAMES | 是否启用主机名解析 | yes |
REDIS_SENTINEL_ANNOUNCE_HOSTNAMES | 是否广播主机名 | no |
ALLOW_EMPTY_PASSWORD | 是否允许空密码访问 | no |
REDIS_SENTINEL_PASSWORD | Sentinel 认证密码 | nil |
REDIS_MASTER_USER | Redis 主节点用户名 | nil |
REDIS_MASTER_PASSWORD | Redis 主节点密码 | nil |
REDIS_SENTINEL_ANNOUNCE_IP | 广播的 IP 地址(用于集群发现) | nil |
REDIS_SENTINEL_ANNOUNCE_PORT | 广播的端口(用于集群发现) | nil |
REDIS_SENTINEL_TLS_ENABLED | 是否启用 TLS 认证 | no |
REDIS_SENTINEL_TLS_PORT_NUMBER | TLS 监听端口(需启用 TLS) | 26379 |
REDIS_SENTINEL_TLS_CERT_FILE | TLS 证书文件路径 | nil |
REDIS_SENTINEL_TLS_KEY_FILE | TLS 密钥文件路径 | nil |
REDIS_SENTINEL_TLS_CA_FILE | TLS CA 证书文件路径 | nil |
REDIS_SENTINEL_TLS_CA_DIR | TLS CA 证书目录 | nil |
REDIS_SENTINEL_TLS_DH_PARAMS_FILE | TLS DH 参数文件路径 | nil |
REDIS_SENTINEL_TLS_AUTH_CLIENTS | 是否启用 TLS 客户端认证 | yes |
REDIS_MASTER_HOST | Redis 主节点主机地址 | redis |
REDIS_MASTER_PORT_NUMBER | Redis 主节点端口 | 6379 |
REDIS_MASTER_SET | Sentinel 主节点集名称 | mymaster |
只读环境变量
| 名称 | 描述 | 值 |
|---|---|---|
REDIS_SENTINEL_VOLUME_DIR | 持久化基础目录 | /bitnami/redis-sentinel |
REDIS_SENTINEL_BASE_DIR | Redis 安装目录 | ${BITNAMI_ROOT_DIR}/redis-sentinel |
REDIS_SENTINEL_CONF_DIR | 配置文件目录 | ${REDIS_SENTINEL_BASE_DIR}/etc |
REDIS_SENTINEL_CONF_FILE | 主配置文件路径 | ${REDIS_SENTINEL_CONF_DIR}/sentinel.conf |
REDIS_SENTINEL_LOG_DIR | 日志目录 | ${REDIS_SENTINEL_BASE_DIR}/logs |
REDIS_SENTINEL_PID_FILE | PID 文件路径 | ${REDIS_SENTINEL_TMP_DIR}/redis-sentinel.pid |
REDIS_SENTINEL_DAEMON_USER | 运行用户 | redis |
REDIS_SENTINEL_DAEMON_GROUP | 运行用户组 | redis |
REDIS_SENTINEL_DEFAULT_PORT_NUMBER | 默认监听端口 | 26379 |
启用 TLS 加密
consoledocker run --name redis-sentinel \ -v /host/path/to/certs:/opt/bitnami/redis/certs \ # 挂载证书目录 -v /host/path/to/data:/bitnami/redis-sentinel/data \ # 持久化数据 -e REDIS_MASTER_HOST=redis-server \ -e REDIS_SENTINEL_TLS_ENABLED=yes \ -e REDIS_SENTINEL_TLS_CERT_FILE=/opt/bitnami/redis/certs/server.crt \ -e REDIS_SENTINEL_TLS_KEY_FILE=/opt/bitnami/redis/certs/server.key \ -e REDIS_SENTINEL_TLS_CA_FILE=/opt/bitnami/redis/certs/ca.crt \ bitnami/redis-sentinel:latest
注意:启用 TLS 后默认禁用非 TLS 端口,如需同时监听,需设置
REDIS_SENTINEL_PORT_NUMBER为非 0 值。
FIPS 模式配置(Bitnami Secure Images)
consoledocker run --name redis-sentinel \ -e OPENSSL_FIPS=yes \ # 启用 FIPS 模式(默认 yes) bitnami/redis-sentinel:latest
步骤 1:启动容器并挂载目录
consoledocker run --name redis-sentinel \ -e REDIS_MASTER_HOST=redis-server \ -v /host/path/to/data:/bitnami/redis-sentinel \ # 挂载持久化目录 bitnami/redis-sentinel:latest
步骤 2:修改配置文件
容器首次启动后,配置文件会生成在 /host/path/to/data/conf/sentinel.conf,可直接编辑:
consolevi /host/path/to/data/conf/sentinel.conf
步骤 3:重启容器使配置生效
consoledocker restart redis-sentinel
容器日志输出至 stdout,可通过以下命令查看:
consoledocker logs redis-sentinel
如需自定义日志驱动,启动时添加 --log-driver 参数:
consoledocker run --name redis-sentinel \ --log-driver=json-file \ # 默认驱动,可选 syslog、journald 等 --log-opt max-size=10m \ # 日志文件最大 size --log-opt max-file=3 \ # 保留日志文件数 bitnami/redis-sentinel:latest
步骤 1:拉取最新镜像
consoledocker pull bitnami/redis-sentinel:latest
步骤 2:停止并备份当前容器
consoledocker stop redis-sentinel rsync -a /host/path/to/data /host/path/to/data.bkp.$(date +%Y%m%d-%H%M%S) # 备份数据
步骤 3:删除旧容器
consoledocker rm -v redis-sentinel
步骤 4:启动新容器
consoledocker run --name redis-sentinel \ -v /host/path/to/data:/bitnami/redis-sentinel \ # 使用原数据目录 [其他环境变量] \ bitnami/redis-sentinel:latest
docker-compose.yaml 文件,该文件仅用于内部测试。rootfs/ 目录下的 Bash 脚本实现。redis 用户(UID 1001)运行,配置文件支持非 root 用户写入。如遇到容器运行问题,请在 https://github.com/bitnami/containers/issues/new/choose 提交 issue,并提供以下信息:
docker images | grep redis-sentinel)docker logs [容器名])Copyright © 2025 Broadcom. "Broadcom" 指 Broadcom Inc. 及其子公司。
本镜像基于 Apache License 2.0 许可协议分发。详见 Apache 许可证。
以下是 bitnami/redis-sentinel 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务