从Docker容器连接到本地主机上的rabbitmq

问题描述:

我有一个在泊坞窗容器中运行的java应用程序和在本地主机(mac)中运行的rabbitmq。该应用程序需要与本地主机上的rabbitmq进行通信,有人能指出我如何实现这一目标?从Docker容器连接到本地主机上的rabbitmq

@Giorgio谢谢您的回答,这表明我看在正确的地方。由于我在Mac上使用Docker并且您的解决方案适用于Linux环境,因此我无法使用您的解决方案来运行它。

Networing功能的码头工人对Mac不支持docker0接口为https://docs.docker.com/docker-for-mac/networking/

解释我也跟着下部分给出的解决方案:“我想从一个容器连接到服务的主机上的”上面的链接的。

在lo0 上创建一个别名并调整rabbitmq.config以侦听该IP,从而解决了我的问题。

如果您使用--net="bridge",Docker引擎将提供虚拟网络接口作为getway。这是一个标准值。在linux上,您可以通过ifconfig命令知道接口的名称。

docker0 Link encap:Ethernet IndirizzoHW 02:42:56:6c:95:26 
     indirizzo inet:172.17.0.1 Bcast:0.0.0.0 Maschera:255.255.0.0 
     indirizzo inet6: fe80::42:56ff:fe6c:9526/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
     RX packets:28267 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:25451 errors:0 dropped:0 overruns:0 carrier:0 
     collisioni:0 txqueuelen:0 
     Byte RX:52948314 (52.9 MB) Byte TX:25718113 (25.7 MB) 

在我的容器,我只是用,在这种情况下,172.17.0.1作为网关来访问我的主机。

内,您的容器,你也可以显示与route命令路线,看看什么是默认网关

[email protected]:/# route 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use  Iface 
default   172.17.0.1  0.0.0.0   UG 0  0  0 eth0 
172.17.0.0  *    255.255.0.0  U  0  0  0 eth0 
[email protected]:/# 
+1

请注意,iproute2可用于查询大多数linux'现在'IP链路显示''IP地址显示''IP路由显示'的网络信息 – Matt