docker集装箱内的卡拉夫经纪人url – 窗口

所以我正在创build一个camel项目的docker container 。 在项目中,我使用apache karaf将数据发送到消息队列。

现在,当项目正常运行, 即没有作为容器 ,它正常工作。 karaf broker url是 – tcp://localhost:61616 。 该值来自骆驼项目中的configuration文件。

但是,当我创buildcontainer错误抛出 –

无法连接到代理url – tcp:// localhost:61616

我的猜测是docker内的“本地主机”不会被认为是我的机器(笔记本电脑)localhost 。 在container内, 我相信 locahost就是它自己的IP地址

那么, 我应该为经纪人url提供什么地址? 127.0.0.1? 或我的笔记本电脑的外部IP?

如果你的camle项目是作为docker容器和karaf在主机上运行,​​那么你需要使用主机ip地址连接到karaf。 您可以像下面一样更改configuration中的经纪人url

 tcp://host_ip:61616 

由于Docker容器也是一个虚拟机,它有自己的networking和孤立的forms主机,所以主机和容器的localhost是不同的。