Sentinel.conf 成为容器内的文件夹

问题描述 投票:0回答:1

我正在尝试安装redis主从模式并将sentinel连接到它们。 我在不同的主机上安装了主服务器和从服务器,以确保如果一台主机关闭,其他主机将继续工作。 现在,我面临这个问题。在哨兵容器的日志中,我看到一些警告:

root@redis1:~# docker 日志 sentinel1 1:X 2023 年 6 月 14 日 07:03:49.917 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo 1:X 2023年6月14日07:03:49.917 # Redis版本=6.0.19,位=64,提交=00000000,修改=0,pid=1,刚刚开始 1:X 2023 年 6 月 14 日 07:03:49.917 # 配置已加载 1:X 2023 年 6 月 14 日 07:03:49.918 * 运行模式=哨兵,端口=26379。 1:X 14 Jun 2023 07:03:49.919 # 无法重命名 tmp 配置文件(是一个目录) 1:X 2023 年 6 月 14 日 07:03:49.919 # 警告:Sentinel 无法将新配置保存在磁盘上!!!:参数无效

docker 组成: 版本:'3'

服务: redis-master: 图片:redis:6.0-alpine 网络模式:主机 容器名称:主容器 命令:redis-server /etc/redis/redis.conf 卷: - ./config/redis/redis.conf:/etc/redis/redis.conf

sentinel-1: 图片:redis:6.0-alpine 网络模式:主机 容器名称:sentinel1 命令:redis-sentinel /etc/redis/sentinel.conf 卷: - /config/sentinel/sentinel.conf:/etc/redis/sentinel.conf

====================================================== =========================================

*如果您对图像标签有疑问,我什至尝试了最新的 redis 图像。 我检查了sentinel容器内/etc/redis文件夹的内容,发现sentinel.conf文件成为了里面的文件夹。谁能解释为什么它变成一个文件夹以及如何解决这个错误警告? 预先感谢!

redis master-slave sentinel
1个回答
0
投票

发生该错误是因为 Sentinel 需要配置文件所在文件夹的写入权限。 Sentinel 需要此权限才能创建临时文件并能够更新配置文件。

您在

sentinel.conf
中看到名为
/etc/redis
的文件夹的原因是因为
volumes
中的
docker-compose.yaml
设置。该设置应该是文件夹的路径。当您在路径中添加文件名时,文件名将被解释为文件夹。对于
redis-master
服务也是如此。
docker-compose.yaml
文件应为:

services:
  redis-master:
    ...
    volumes:
      - ./config/redis:/etc/redis

  sentinel-1:
    ...
    volumes:
      - /config/sentinel:/etc/redis
© www.soinside.com 2019 - 2024. All rights reserved.