Redis® Sentinel 为 Redis 提供高可用性支持。Redis Sentinel 还提供其他辅助功能,如监控、通知,并作为客户端的配置提供者。
Redis® Sentinel 概述
免责声明:Redis 是 Redis Ltd. 的注册商标。Bitnami 对其的任何使用仅为参考目的,不表示 Redis Ltd. 的任何赞助、认可或关联。
consoledocker run --name redis-sentinel -e REDIS_MASTER_HOST=redis REGISTRY_NAME/bitnami/redis-sentinel:latest
警告:此快速设置仅适用于开发环境。建议修改不安全的默认凭据,并查看环境变量部分的可用配置选项以进行更安全的部署。
仅部分 BSI 应用可免费使用。如需访问完整应用目录及企业支持?立即尝试 Bitnami 安全镜像商业版。
非 root 容器镜像增加了额外的安全层,通常推荐用于生产环境。但由于它们以非 root 用户运行,通常无法执行特权任务。更多关于非 root 容器的信息,请参见 Bitnami 文档。
了解 Bitnami 标签策略及滚动标签与不可变标签的区别,请参见 Bitnami 文档。
可通过分支文件夹中的 tags-info.yaml 文件查看不同标签的对应关系,例如 bitnami/ASSET/BRANCH/DISTRO/tags-info.yaml。
订阅项目更新,请关注 bitnami/containers GitHub 仓库。
获取 Bitnami Redis® Sentinel Docker 镜像的推荐方式是从 Docker Hub 仓库 拉取预构建镜像。
consoledocker pull REGISTRY_NAME/bitnami/redis-sentinel:latest
如需使用特定版本,可拉取带版本标签的镜像。可在 Docker Hub 仓库 查看可用版本列表。
consoledocker pull REGISTRY_NAME/bitnami/redis-sentinel:[TAG]
如需自行构建镜像,可克隆仓库,进入包含 Dockerfile 的目录,执行 docker build 命令。请将以下命令中的 APP、VERSION 和 OPERATING-SYSTEM 占位符替换为实际值。
consolegit clone [***] cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t REGISTRY_NAME/bitnami/APP:latest .
Redis® Sentinel 适用于需要 Redis 高可用架构的场景,例如:
通过 Docker 容器网络,容器内运行的 Redis 服务器可被应用容器轻松访问。同一网络中的容器可通过容器名作为主机名相互通信。
以下示例将创建一个 Redis® Sentinel 实例,监控同一 Docker 网络中的 Redis® 实例。
consoledocker network create app-tier --driver bridge
使用 --network app-tier 参数将 Redis 容器附加到 app-tier 网络。
consoledocker run -d --name redis-server \ -e ALLOW_EMPTY_PASSWORD=yes \ --network app-tier \ REGISTRY_NAME/bitnami/redis:latest
创建新容器实例以启动 Redis® Sentinel 并连接到上一步创建的服务器:
consoledocker run -it --rm \ -e REDIS_MASTER_HOST=redis-server \ --network app-tier \ REGISTRY_NAME/bitnami/redis-sentinel:latest
| 名称 | 描述 | 默认值 |
|---|---|---|
REDIS_SENTINEL_DATA_DIR | Redis 数据目录 | ${REDIS_SENTINEL_VOLUME_DIR}/data |
REDIS_SENTINEL_DISABLE_COMMANDS | 需禁用的 Redis 命令 | nil |
REDIS_SENTINEL_DATABASE | 默认 Redis 数据库 | redis |
REDIS_SENTINEL_AOF_ENABLED | 是否启用 AOF 持久化 | yes |
REDIS_SENTINEL_HOST | Redis Sentinel 主机名 | nil |
REDIS_SENTINEL_MASTER_NAME | Redis Sentinel 主节点名称 | nil |
REDIS_SENTINEL_PORT_NUMBER | Redis Sentinel 端口 | $REDIS_SENTINEL_DEFAULT_PORT_NUMBER |
REDIS_SENTINEL_QUORUM | 达成故障转移决策所需的最小 Sentinel 节点数 | 2 |
REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS | 判定节点不可用的时间(毫秒) | 60000 |
REDIS_SENTINEL_FAILOVER_TIMEOUT | 故障转移超时时间(毫秒) | *** |
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 | Redis 访问密码 | nil |
REDIS_MASTER_USER | Redis 主节点用户名 | nil |
REDIS_MASTER_PASSWORD | Redis 主节点密码 | nil |
REDIS_SENTINEL_ANNOUNCE_IP | 用于 gossip 协议的公告 IP 地址 | nil |
REDIS_SENTINEL_ANNOUNCE_PORT | 用于 gossip 协议的公告端口 | nil |
REDIS_SENTINEL_TLS_ENABLED | 是否启用 TLS 认证 | no |
REDIS_SENTINEL_TLS_PORT_NUMBER | Redis TLS 端口(需启用 REDIS_SENTINEL_TLS_ENABLED=yes) | 26379 |
REDIS_SENTINEL_TLS_CERT_FILE | Redis TLS 证书文件路径 | nil |
REDIS_SENTINEL_TLS_KEY_FILE | Redis TLS 密钥文件路径 | nil |
REDIS_SENTINEL_TLS_CA_FILE | Redis TLS CA 证书文件路径 | nil |
REDIS_SENTINEL_TLS_CA_DIR | 包含 TLS CA 证书的目录 | nil |
REDIS_SENTINEL_TLS_DH_PARAMS_FILE | Redis TLS DH 参数文件路径 | nil |
REDIS_SENTINEL_TLS_AUTH_CLIENTS | 是否启用 Redis TLS 客户端认证 | yes |
REDIS_MASTER_HOST | Redis 主节点主机名(从节点使用) | redis |
REDIS_MASTER_PORT_NUMBER | Redis 主节点端口(从节点使用) | 6379 |
REDIS_MASTER_SET | Redis Sentinel 主节点集名称 | mymaster |
| 名称 | 描述 | 值 |
|---|---|---|
REDIS_SENTINEL_VOLUME_DIR | 持久化基础目录 | /bitnami/redis-sentinel |
REDIS_SENTINEL_BASE_DIR | Redis 安装目录 | ${BITNAMI_ROOT_DIR}/redis-sentinel |
REDIS_SENTINEL_CONF_DIR | Redis 配置目录 | ${REDIS_SENTINEL_BASE_DIR}/etc |
REDIS_SENTINEL_DEFAULT_CONF_DIR | Redis 默认配置目录 | ${REDIS_SENTINEL_BASE_DIR}/etc.default |
REDIS_SENTINEL_MOUNTED_CONF_DIR | Redis 挂载配置目录 | ${REDIS_SENTINEL_BASE_DIR}/mounted-etc |
REDIS_SENTINEL_CONF_FILE | Redis 配置文件路径 | ${REDIS_SENTINEL_CONF_DIR}/sentinel.conf |
REDIS_SENTINEL_LOG_DIR | Redis 日志目录 | ${REDIS_SENTINEL_BASE_DIR}/logs |
REDIS_SENTINEL_TMP_DIR | Redis 临时目录 | ${REDIS_SENTINEL_BASE_DIR}/tmp |
REDIS_SENTINEL_PID_FILE | Redis PID 文件路径 | ${REDIS_SENTINEL_TMP_DIR}/redis-sentinel.pid |
REDIS_SENTINEL_BIN_DIR | Redis 可执行文件目录 | ${REDIS_SENTINEL_BASE_DIR}/bin |
REDIS_SENTINEL_DAEMON_USER | Redis 系统用户 | redis |
REDIS_SENTINEL_DAEMON_GROUP | Redis 系统用户组 | redis |
REDIS_SENTINEL_DEFAULT_PORT_NUMBER | Redis Sentinel 默认端口 | 26379 |
Redis® 从版本 6 开始支持 SSL/TLS 连接。如需启用此功能,可使用上述 REDIS_SENTINEL_TLS_* 环境变量进行配置。
启用 TLS 后,默认禁用常规流量。但该功能并非互斥,可同时监听 TLS 和非 TLS 连接。如需启用非 TLS 流量,需将 REDIS_SENTINEL_PORT_NUMBER 设置为非 0 的端口。
使用 docker run 命令:
consoledocker run --name redis-sentinel \ -v /path/to/certs:/opt/bitnami/redis/certs \ -v /path/to/redis-sentinel/persistence:/bitnami \ -e REDIS_MASTER_HOST=redis \ -e REDIS_SENTINEL_TLS_ENABLED=yes \ -e REDIS_SENTINEL_TLS_CERT_FILE=/opt/bitnami/redis/certs/redis.crt \ -e REDIS_SENTINEL_TLS_KEY_FILE=/opt/bitnami/redis/certs/redis.key \ -e REDIS_SENTINEL_TLS_CA_FILE=/opt/bitnami/redis/certs/redisCA.crt \ REGISTRY_NAME/bitnami/redis-sentinel:latest
也可通过自定义配置文件提供此配置。
镜像会在 /bitnami/redis-sentinel/conf/ 目录中查找配置。可挂载卷到 /bitnami,并在 /path/to/redis-persistence/redis-sentinel/conf/ 中编辑配置。若 conf/ 目录为空,将自动填充默认配置。
运行 Redis® Sentinel 镜像,挂载主机目录:
consoledocker run --name redis-sentinel \ -e REDIS_MASTER_HOST=redis \ -v /path/to/redis-sentinel/persistence:/bitnami \ REGISTRY_NAME/bitnami/redis-sentinel:latest
使用编辑器在主机上修改配置:
consolevi /path/to/redis-persistence/redis-sentinel/conf/sentinel.conf
修改配置后,重启容器使变更生效:
consoledocker restart redis-sentinel
完整配置选项请参考 Redis® 配置手册。
Bitnami 安全镜像 目录中的 Bitnami Redis® Sentinel Docker 镜像包含额外功能和设置,可配置容器支持 FIPS。可设置以下环境变量:
OPENSSL_FIPS:OpenSSL 是否运行在 FIPS 模式。yes(默认)、no。Bitnami Redis® Sentinel Docker 镜像将容器日志输出到 stdout。查看日志:
consoledocker logs redis-sentinel
如需自定义日志消费方式,可使用 --log-driver 选项配置容器日志驱动。默认使用 json-file 驱动。
Bitnami 会及时提供 Redis® Sentinel 的更新版本,包括安全补丁。建议按以下步骤升级容器:
consoledocker pull REGISTRY_NAME/bitnami/redis-sentinel:latest
使用以下命令停止当前容器:
consoledocker stop redis-sentinel
使用 rsync 快照持久化卷 /path/to/redis-persistence:
consolersync -a /path/to/redis-persistence /path/to/redis-persistence.bkp.$(date +%Y%m%d-%H.%M.%S)
consoledocker rm -v redis-sentinel
使用新镜像重新创建容器:
consoledocker run --name redis-sentinel REGISTRY_NAME/bitnami/redis-sentinel:latest
docker-compose.yaml 文件已移除,该文件仅用于内部测试。rootfs/ 目录中的 Bash 脚本实现。root 用户运行,Redis 守护进程以 redis 用户运行;现在容器和 Redis 守护进程均以用户 1001 运行。因此,配置文件可被运行 Redis 进程的用户写入。如需恢复原有行为,可将 Dockerfile 中的 USER 1001 修改为 USER root。欢迎为此容器贡献代码。可通过创建 issue 请求新功能,或提交 pull request 贡献代码。
如运行容器时遇到问题,请提交 [issue](
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429