我正在尝试在 Docker 设置上本地运行 Redis。
配置和 ACL 文件的设置如下:
# redis.conf
aclfile /var/lib/redis/users.acl
## cluster is not enabled
# users.acl
user default on >password ~* &* +@all
然后我使用 docker-compose 文件启动 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:/var/lib/redis/users.acl
- ./redis_data:/data
到目前为止一切都很好。
我的所有 ACL
SETUSER
命令都运行良好,并且正在创建可以进行身份验证的用户。
但是,我在运行
ACL SAVE
命令时遇到了问题。
最初,我收到此错误:
Opening temp ACL file for ACL SAVE: Permission denied
当然,我尝试通过运行以下命令手动为其提供权限:
chmod 777 /var/lib/redis
但是当我使用上述命令向文件夹提供权限并再次运行
ACL SAVE
后,我收到以下错误:
Renaming ACL file for ACL SAVE: Device or resource busy
有人知道可以采取什么措施以正确的方式解决这个问题吗?任何有关此事的帮助将不胜感激。
谢谢!
抱歉回复晚了。 您需要将acl文件的所有权设置为redis。请使用 chown redis:redis /var/lib/redis/users.acl