networking - 如何将在 boot2docker 中运行的 Docker 容器连接到在另一台主机上运行的网络服务?

标签 networking rabbitmq virtualbox docker boot2docker

我在 Windows 7 (SP1) 64 位机器上使用最新版本的 boot2docker 版本 1.3.2、495c19a。

我的 docker 容器正在运行一个 celery 进程,它试图连接到 rabbitMQ 服务,该服务在运行 boot2docker 的同一台机器上运行。

在 docker 容器中运行的 Celery 进程无法连接到 RabbitMQ 并报告以下内容:

[2014-12-02 10:28:41,141: ERROR/MainProcess] consumer: Cannot connect to amqp:// guest:**@127.0.0.1:5672//: [Errno 111] Connection refused. Trying again in 2.00 seconds...

我有理由相信这是一个与网络相关的问题,与从容器到 VirtualBox 主机以及从主机到本地计算机上运行的 RabbitMQ 服务的路由有关;我不知道如何配置它,我想知道是否有人可以建议我如何进行?

我尝试在端口转发中设置端口 5672,但它不起作用(但我相信这是针对 VM 的传入流量,例如 boot2docker ssh)。

我正在运行容器作为 docker run -i -t tagname

我在运行容器时没有使用 -h 指定主机。

如果这个问题看起来毫 headless 绪或者答案看起来很明显,我很抱歉......非常感谢您的帮助!


一些附加信息:

host VM的路由表是boot2docker在安装时配置的,如下:

enter image description here

  • docker0 IP 地址为 172.17.42.1

  • eth0 IP 地址为 10.0.2.15

  • eth1 IP 地址是 192.168.59.103

  • eth0 附加到 VirtualBox VM 网络配置中的 NAT(适配器 1)。

  • 适配器 1 具有用于 ssh 的端口转发设置;主机 IP 127.0.0.1、主机端口 2022、访客端口 22 的默认设置。

  • eth1 连接到 Host-only 适配器(适配器 2)。

  • 两个适配器都设置为混杂模式(允许所有)。

  • docker 容器的 IP 地址是 172.17.0.33。

最佳答案

[2014-12-02 10:28:41,141: ERROR/MainProcess] consumer: Cannot connect to amqp:// guest:**@127.0.0.1:5672//: [Errno 111] Connection refused. Trying again in 2.00 seconds...

127.0.0.1 是一个特殊的 IP 地址,意思是“我”,在容器内部它的意思是“我这个容器”,所以这就是它不连接到外部主机的原因。因此,首先要做的是将您尝试连接到 Rabbit 的 IP 地址更改为运行它的外部主机的 IP 地址。

然后您可能必须对路由做一些事情,但让我们一次一个步骤。

关于networking - 如何将在 boot2docker 中运行的 Docker 容器连接到在另一台主机上运行的网络服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27248520/

相关文章:

amazon-ec2 - 在 EC2 上的 RabbitMQ 中创建集群时出错

linux - SOASTA CloudTest Lite ova VM 在导入 VirtualBox 后无法启动,出现错误 : "Your cpu does not support long mode. Use a 32bit distribution."

linux - 无法使用 UDP 从我的 VirtualBox debian linux VM 发送或接收数据包

python - pysnmp 是线程安全的吗?

sockets - 关于so​​cket编程中getaddrinfo()函数的问题

networking - 同一台计算机上的多个应用程序可以接收 UDP 广播吗?

java - SpringAMQP - 如何捕获 ListenerExecutionFailedException?

Erlang 机器立即停止(发行版名称冲突?)。由于 OnFail 设置为忽略,因此服务未重新启动

windows - 启动时出现 Genymotion 错误 'Unable to load virtualbox'

solaris - 如何摆脱 Virtual Box 中的 "No bootable medium found!"错误?