实验不能停:docker 部署支持用户名的redis容器

目前redis由于6.0+的版本增加了账号密码登录的方式也就是ALC的控制规则,在这之前是仅需要账号密码登录的,这个时候我们要研究如何实现这个目标

以下是我实现的过程:

我的需求目标: 在Docker 中启动 Redis 7.2 容器并设置账号为 root、密码为 root123456、监听宿主机端口 6382

官方镜像:redis:7.2 镜像 + 自定义 ACL 配置文件** ------ 通过挂载 redis.conf,创建自定义用户名 root (推荐)

  1. 在宿主机上新建一个配置文件 /path/to/redis.conf,内容示例:

    conf 复制代码
    # 开启密码认证
    requirepass root123456
    
    # 创建并启用用户 root,允许所有命令、所有 key
    user root on >root123456 ~* +@all
    
    # 禁用 default 用户(可选)
    user default off
  2. 启动容器并挂载此配置:

    bash 复制代码
    docker run -d \
      --name redis-7-2 \
      -p 6382:6379 \
      -v /path/to/redis.conf:/usr/local/etc/redis/redis.conf \
      redis:7.2 \
      redis-server /usr/local/etc/redis/redis.conf
  • -v .../redis.conf:/usr/local/etc/redis/redis.conf:挂载自定义配置文件citeturn1search3

  • redis-server /usr/local/etc/redis/redis.conf:指定使用挂载的配置启动 Redisciteturn1search3

  • 认证方式:AUTH root root123456 或者使用 -u root

    bash 复制代码
    redis-cli -h 127.0.0.1 -p 6382 -u root -a root123456

另一种方式: redis-stack-server:7.2 镜像:环境变量直接创建 root 用户

bash 复制代码
docker run -d \
  --name redis-stack-7-2 \
  -p 6382:6379 \
  -e REDIS_USERNAME=root \
  -e REDIS_PASSWORD=root123456 \
  redis/redis-stack-server:7.2
  • --name redis-stack-7-2:容器名称示例

  • -e REDIS_USERNAME / -e REDIS_PASSWORD:直接在镜像层面创建 ACL 用户及密码citeturn0search2

  • 启动后使用:

    bash 复制代码
    redis-cli -h 127.0.0.1 -p 6382 -u root -a root123456

说明 :官方 redis:7.2 镜像不支持 REDIS_USERNAME,需使用 redis-stack-server 镜像才能通过环境变量新增自定义 ACL 用户。

相关推荐
萧曵 丶1 分钟前
事务ACID特性详解
数据库·事务·acid
HABuo16 分钟前
【Linux进程(四)】进程切换&环境变量深入剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
橘颂TA31 分钟前
【Linux】死锁四条件的底层逻辑:从锁冲突到 STL 组件的线程安全实践(Ⅵ)
linux·运维·服务器·c++·死锁
kejiayuan40 分钟前
CTE更易懂的SQL风格
数据库·sql
kaico201844 分钟前
MySQL的索引
数据库·mysql
黄焖鸡能干四碗1 小时前
智能制造工业大数据应用及探索方案(PPT文件)
大数据·运维·人工智能·制造·需求分析
橙露1 小时前
国产PLC与进口PLC全面对比分析:技术、市场与未来趋势
运维·网络
lbb 小魔仙1 小时前
【Linux】云原生运维效率提升:Linux 终端工具链(kubectl + tmux + fzf)组合拳教程
linux·运维·云原生
清水白石0081 小时前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python
资生算法程序员_畅想家_剑魔1 小时前
Mysql常见报错解决分享-01-Invalid escape character in string.
数据库·mysql