虚拟机A中docker安装redis,redis设置密码后连接不上

问题遇到的现象和发生背景

虚拟机A中docker安装redis,redis设置密码后连接不上

操作环境、软件版本等信息

虚拟机是服务器物理机安装exsi6.7创建的centos7虚拟机
docker版本23.0.0
redis版本7.0.8

尝试过的解决方法

首先redis挂载外置redis.conf不设置密码,可以连接
修改配置如下后,连接失败。

appendonly yes
protected-mode no
port 6379
requirepass admin
bind 0.0.0.0

docker启动命令如下

docker run -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /mydata/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis:7.0.8  redis-server /etc/redis/redis.conf

测试过的方法:

  1. 重新创建一个虚拟机B,在虚拟机B中使用redis-cli或者telnet登入输入命令可以反馈。但是win使用客户端连接失败,但是telnet是通的,输入auth密码无反应。
  2. 同样的配置 注释requirepass,重启docker redis,访问成功。
  3. 防火墙已关闭
  4. 同样的配置:docker环境、redis版本、redis.conf文件,在阿里云服务器上部署,win可以访问
    我想要达到的结果
    win上客户端连接虚拟机A的redis

根据您描述的问题,docker安装redis后,修改配置文件后无法连接的问题,这里推荐以下几种可能的解决方法:
1.检查6379端口是否打开或者被占用
2.检查redis.conf文件修改后的编码是否被改变了,导致无法正常读取conf文件
3.检查requirepass设置密码的地方是否有空格或非法字符,换其它密码试试
4.在redis启动后再设置密码看看是否成功config set requirepass 123456

由于您的redis安装在虚拟机中的docker中,因此在连接redis时需要考虑Docker的网络配置。

如果redis安装在Docker中,并且您要在另一个主机(如虚拟机)上连接到redis,则需要确保redis服务器在Docker容器中配置为运行在适当的网络模式(例如桥接模式)。此外,您还需要确保redis配置文件(redis.conf)中的bind参数配置正确,以便外部主机可以访问redis。

如果在redis.conf中设置了密码,请确保在连接redis时使用正确的密码。可以使用redis-cli工具进行测试,例如:

redis-cli -h <redis-host> -p <redis-port> -a <redis-password>

如果仍然无法连接,可以尝试检查以下内容:

1.确保redis服务正在运行:在Docker容器中运行命令“docker ps”,以确保redis正在运行。

2.检查端口是否正在监听:使用命令“netstat -lntp”检查端口是否正在监听。

3.检查防火墙设置:检查是否有防火墙阻止了对redis端口的访问。

4.检查容器内部的配置:如果您使用了容器网络,请检查