redis - 无法连接 docker 容器内的主机接口(interface)服务

标签 redis vagrant docker

我是 docker 的新手,并且在 vagrant 主机内运行 docker。

我正在主机接口(interface)上运行 redis 服务,该服务正在工作,我可以在主机接口(interface)(例如 localhost:6379)上与其连接。但我无法在 docker 容器内连接它。

我正在运行 docker 容器

docker run -t -i -p 80:80 apache-latest /bin/bash

我能够在 docker0 IP 172.17.42.1 和 lx*** IP 10.0.3.1 上 ping docker 容器内的主机接口(interface)。

我收到连接被拒绝 [tcp://172.17.42.1:6379] 错误。我尝试通过提供 docker0 和 lx* ip 与主机接口(interface)上的 redis 连接,但出现连接被拒绝错误。**

请帮助如何在 docker 容器内连接 redis...

最佳答案

您应该在 Redis 配置文件中检查将 Redis 绑定(bind)到哪个端口:

# config file directive to check:
bind 127.0.0.1

您应该将其绑定(bind)到您可以 ping 通的地址之一(例如 10.0.3.1)。

或者,您可以将 Redis 套接字传递给容器:

# uncomment this section in config file:
unixsocket /lnk/redis.sock
unixsocketperm 755

然后您可以使用-v/lnk:/lnk将带有套接字的目录传递给容器。您可以使用此套接字而不是 IP 地址与 Redis 进行通信。

关于redis - 无法连接 docker 容器内的主机接口(interface)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21037983/

相关文章:

python - 在Google App Engine上部署Flask和Tensorflow服务

docker - 无法连接到 Docker 守护程序。 'docker -d' 是否在此主机上运行?

bash - 如何在容器运行时使用 dockerfile 运行 .sh 文件

java - 雷迪森 : WRITE_BIGDECIMAL_AS_PLAIN

python - 如何在redis中存储列表的python dict?

ruby-on-rails - 当为 kvs 使用 redis 时,使用 1 db 或不同的是很快的

javascript - 使用 Promise.all 时,Node_Redis HGET 解析为 bool 数组

reactjs - 如何使用 Vagrant VM 通过共享文件夹启用热重载?

ruby-on-rails - virtualbox + vagrant 和 VMWare 融合的区别

virtualbox - Vagrant:是否可以在 guest 内部共享文件和更改权限?