You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署本地Redis执行ACL SAVE命令失败的求助

解决Docker部署Redis时ACL SAVE命令的报错问题

问题原因

  1. 权限拒绝错误:容器内Redis进程以redis用户(默认UID 999)运行,/var/lib/redis是容器镜像自带的系统目录,该用户无写入权限,导致无法创建ACL临时文件。
  2. 设备资源忙错误:直接将宿主机的users.acl挂载到容器内/var/lib/redis/users.acl,Redis执行ACL SAVE时会先创建临时文件再重命名覆盖原文件,但跨文件系统(宿主机与容器)的重命名操作不被允许,触发该报错。

解决步骤

1. 修改Redis配置文件的ACL路径

将redis.conf中的aclfile路径指向容器内Redis默认有权限的/data目录:

# redis.conf
aclfile /data/users.acl
## cluster is not enabled

2. 调整Docker Compose的挂载配置

把users.acl挂载到容器的/data目录下,确保和Redis数据目录在同一挂载卷中:

version: "3.8"
services:
  redis_local:
    container_name: redis_local
    image: redis:6.2.2
    restart: always
    command: 
      - /var/lib/redis/redis.conf
    ports:
      - 6379:6379
    volumes:
      - ./redis.conf:/var/lib/redis/redis.conf
      - ./users.acl:/data/users.acl
      - ./redis_data:/data

3. 修复宿主机文件/目录权限

确保容器内redis用户能读写相关文件和目录,在宿主机执行以下命令:

chown -R 999:999 ./redis_data ./users.acl

4. 重启Redis服务

重新启动容器使配置生效:

docker-compose down && docker-compose up -d

完成以上操作后,再次执行ACL SAVE命令即可正常将ACL规则写入文件。

内容的提问来源于stack exchange,提问作者Ayush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:01:02