我看到很多人都在为此苦苦挣扎,感觉可能是 redis 容器映像中存在错误,而其他人似乎也在追求类似的问题。
我在 DockerHub 上使用标准的 redis 映像。 ( https://github.com/dockerfile/redis )
像这样运行它:
docker run -it -p 6379:6379 redis bash
进入后,我可以启动服务器,并从容器映像执行 redis ping。
不幸的是,我无法从我的主机连接到 redis 容器。
我尝试过设置,如下所示。
bind 127.0.0.1
并从配置中删除绑定
并尝试关闭保护模式
protected-mode no
我知道它正在读取配置文件,因为我更改端口只是为了测试,我能够做到这一点。
我正在运行 Windows 10,所以可能是 Windows 网络问题。我通常从来没有遇到过docker问题。我很困惑
原文由 user3888307 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题在于您的绑定,您应该设置以下内容:
这将设置
redis
绑定到所有可用的接口,在具有一个接口的容器化环境中,(eth0
)和环回(lo
)以上两者。 您应该考虑通过config file
中的其他指令或使用firewalls
等外部工具添加安全措施。因为通过这种方法,每个人都可以连接到您的redis
服务器。默认设置是
bind 127.0.0.1
这个设置会导致redis
只监听环回接口,并且只能从容器内部访问。 (为了安全)使用自定义配置文件运行 redis:
现在在安装了
redis-tools
的 docker 主机上进行验证:您还可以通过以下方式从外部主机连接到您的
redis
容器: