Docker Compose 部署 Redis6.2 + Redis‑Commander 可视化管理【redis有密码】

 

 

环境:Windows Docker Desktop,Compose 版本 3.9,Redis6.2,带密码认证、数据持久化、健康检查,Redis‑Commander 自动预配置连接,无需网页手动新增连接。

 

一、整体说明

  • Redis 开启密码访问,禁止无密码访问
  • 外部配置文件挂载:​​C:/docker/redis/config/redis.conf​​
  • Redis 数据持久化存储在 Docker 命名卷​​redis-data​​,容器删除数据不丢失
  • Redis‑Commander 使用官方原版镜像,环境变量预配置 Redis 连接,启动即自动连接 Redis
  • 自定义桥接网络​​my-network​​,容器间使用容器名做域名通信
  • 健康检查监控 Redis 服务状态,redis‑admin 等待 Redis 健康后才启动

二、目录准备

Windows 本地手动创建配置目录,Docker 不会自动生成文件夹:

C:\docker\redis\config

  

在该目录新建配置文件 ​​redis.conf​​,内容如下:

 

bind 0.0.0.0
port 6379
requirepass Admin@12456789
 

⚠️重点注意:​​requirepass​​密码不要加双引号,引号会被识别为密码一部分,造成认证失败。

 

三、docker‑compose‑redis.yml 完整配置

 

version: '3.9'
services:
  redis:
    image: redis:6.2
    container_name: redis
    restart: always
    hostname: redis
    ports:
      - 6379:6379
    volumes:
      - C:/docker/redis/config/redis.conf:/usr/local/etc/redis/redis.conf
      - redis-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      - my-network
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "Admin@12456789", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3

  redis-admin:
    image: rediscommander/redis-commander:latest
    container_name: redis-admin
    hostname: redis-commander
    restart: always
    ports:
      - 8081:8081
    environment:
      # 格式:实例名:redis容器名:端口:db库号:密码
      - REDIS_HOSTS=local:redis:6379:0:Admin@1qa2ws.
      - HTTP_USER=admin
      - HTTP_PASSWORD=admin
    networks:
      - my-network
    depends_on:
      redis:
        condition: service_healthy

networks:
  my-network:
    driver: bridge

volumes:
  redis-data:

 

配置关键点解读

  1. redis 服务
  • ​​volumes​​:挂载本地 redis 配置文件;​​redis-data​​命名卷用于持久化 Redis 数据。
  • ​​command​​:指定 Redis 加载挂载进来的外部配置文件启动。
  • ​​healthcheck​​:带密码执行​​ping​​检测 Redis 可用性;设置间隔、超时、重试次数。
  • ​​restart: always​​:docker 重启自动拉起 redis 容器。
  1. redis‑admin 可视化面板
  • 使用官方镜像​​rediscommander/redis-commander:latest​​,摒弃老旧 spryker 镜像,修复密码带特殊字符​​@​​解析 bug。
  • ​​REDIS_HOSTS​​环境变量预配置 Redis 连接,无需网页手动添加连接;容器内部使用容器名​​redis​​作为主机名访问 redis 服务。
  • ​​HTTP_USER / HTTP_PASSWORD​​:面板登录账号密码。
  • ​​depends_on​​:等待 redis 服务健康检查通过后,才启动 redis‑admin,避免启动顺序导致连接报错。
  1. 网络与卷
  • 自定义 bridge 网络​​my-network​​,两个服务接入同一网络,容器之间可以用容器名做域名访问。
  • ​​redis-data​​命名卷,持久化 Redis 数据,容器销毁数据不会丢失。

四、部署启停命令

 

在​​docker‑compose‑redis.yml​​所在目录的 PowerShell 执行

 

停止并销毁旧容器(修改配置后必须执行,清理旧环境变量)

 

docker compose -f docker-compose-redis.yml down

 

后台启动服务

 

image

 

docker compose -f docker-compose-redis.yml up -d

查看容器运行状态

image

 

docker compose -f docker-compose-redis.yml ps


查看 redis‑admin 日志,排查连接异常

 

docker logs redis-admin

image

 


五、验证服务

1. 验证 Redis 本身密码连通

 

docker exec -it redis redis-cli -a Admin@12456789 ping

正常返回:​​PONG​​,代表 redis 密码认证正常。

2. 访问 Redis‑Commander 可视化面板

浏览器访问:​​http://127.0.0.1:8081​​

登录账号:​​admin​​,密码:​​admin​​

进入页面会自动加载名为​​local​​的 Redis 连接,直接操作 redis 数据,不需要手动新增连接。

image

 

六、常见踩坑汇总

  1. ❌NOAUTH Authentication required

 

原因:密码配置不一致,conf 文件密码带引号、或者 redis‑admin 环境变量密码写错;conf 文件​​requirepass​​不要写引号。

 

  1. ❌redis‑admin 尝试连接​​localhost:6379​​

 

旧 spryker 镜像缺陷,密码包含​​@​​特殊符号解析错乱;解决:切换官方​​rediscommander/redis-commander:latest​​镜像。

 

  1. ❌健康检查失败

 

healthcheck 里面​​redis‑cli ping​​没有携带 redis 密码,必须带上​​‑a 你的密码​​参数。

 

  1. ❌修改 compose 配置后不生效

 

只执行 up‑d 不会清理旧容器环境,修改 yml 后,必须先执行 down 再 up‑d。

 

  1. Windows 挂载配置文件报错找不到文件

 

​​C:\docker\redis\config​​文件夹需要手动创建,Docker 不会自动创建本地文件夹。

 

七、客户端连接示例

本地 redis‑cli 连接:

 

redis-cli -h 127.0.0.1 -p 6379 -a Admin@12456789

 

 

生产环境建议:不要直接把 redis6379 端口暴露公网;定期修改复杂密码;使用 ACL 做细粒度账号权限管理。

 

 

微信图片_20260323111758_80_204

 

 

posted @ 2026-09-30 09:52  程序员食堂  阅读(5)  评论(0)    收藏  举报