2016-12-28 2 views
1

У меня есть приложение java, работающее в контейнере докера, и rabbitmq работает на локальном хосте (mac). Приложению нужно общаться с кроликом на локальном хосте, может кто-нибудь указать, как я могу это достичь?Подключитесь к rabbitmq на локальном хосте из контейнера Docker

ответ

1

@Giorgio Спасибо за ваш ответ, он показал мне правильное место, чтобы посмотреть. Я не мог заставить его работать с вашим решением, поскольку я использую Docker на Mac, и ваше решение подходит для среды Linux.

Networing функция для Докер на Mac не поддерживает интерфейс docker0, как описано в https://docs.docker.com/docker-for-mac/networking/

Я последовал за данное решение в разделе «Я хочу подключить от контейнера к службе на хосте» по ссылке выше ,

Создание псевдонима на lo0 и настройка rabbitmq.config для прослушивания на том, что IP решил мою проблему.

3

Docker engine обеспечивает виртуальный сетевой интерфейс как getway, если вы используете --net="bridge". Это стандартное значение. В 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 'now 'ip link show'' ip address show' 'ip route show' – Matt

Смежные вопросы