当前位置: 首页 > 知识库问答 >
问题:

如何从运行在同一台机器上的Spring boot docker容器访问RabbitMQ服务(在主机上)

柳高卓
2023-03-14

环境详细信息

Windows 10

Docker桌面

Spring Boot(在容器内使用)

RabbitMQ(作为服务安装在我的windows机器上)

我想从Spring Boot Container访问RabbitMQ服务。我在里面提供了下面的属性application.properties

batch.rabbitmq.host=localhost
batch.rabbitmq.port=5672
batch.rabbitmq.username=guest
batch.rabbitmq.password=guest
server.port=8083

我正在运行我的Spring启动应用程序

docker run-p 8083:8083 dockerdemo

我可以使用localhost:15672访问RabbitMQ管理控制台,但我的Spring boot应用程序无法连接它。

它抛出连接

java.net.连接异常:连接拒绝(连接拒绝)

我需要改变什么,请建议。

共有1个答案

李成礼
2023-03-14

从容器内部将localhost解析为容器内部,而不是物理主机。所以你需要把设置改成这样

batch.rabbitmq.host=[HOST_NAME OR IP Address]
 类似资料:
  • 我在windows机器上用虚拟盒子管理器运行Ubuntu。在VM box ubuntu中,我正在运行一个python flask应用程序,它运行在http://localhost:5000上。 我尝试使用我使用获得的虚拟机盒IP访问Windows计算机上的虚拟机框本地主机URL。但它说: 我访问它的方式正确吗? 这是我的蟒蛇烧瓶代码:

  • 问题内容: 我正在boot2docker 1.3.1下运行。 我有一个Docker容器通过运行Web服务器。 如果我连接到该容器,则可以使用浏览该网站,以便知道服务器正在运行。 我用以下容器运行容器: 它具有以下详细信息: 我以为可以访问,从托管人访问该网站。 这是行不通的。我只是在Chrome中看到“正在连接…”,却一无所获。 我究竟做错了什么? 问题答案: 好吧,愚蠢的我,我在boot2doc

  • 5.12.1. 在Windows下运行多个服务器 5.12.2. 在Unix中运行多个服务器 5.12.3. 在多服务器环境中使用客户端程序 在一些情况下,你可能想要在同一台机器上运行多个mysqld服务器。你可能想要测试一个新的MySQL发布,同时不影响现有产品的设置。或者,你可能想使不同的用户访问来访问不同的mysqld服务器以便他们自己来管理。(例如,你可能是一个Internet服务提供商,

  • 问题内容: 如何从Docker容器控制主机? 例如,如何执行复制到主机的bash脚本? 问题答案: 那真的取决于您需要该bash脚本执行的操作! 例如,如果bash脚本仅回显某些输出,则可以执行 另一种可能性是您希望bash脚本安装某些软件-例如要安装docker-compose的脚本。你可以做类似的事情 但是,此时,您真的必须深入了解脚本在做什么,以允许容器从容器内部对其主机授予特定权限。

  • 如何从docker容器控制主机? 例如,如何执行复制到主机的bash脚本?

  • 如果我有一个mysql数据库在某台主机上运行,并且该主机也在运行docker容器:我将如何从主机上运行的docker容器中访问mysql数据库?。 有没有一种方法可以将主机端口发布到容器(与docker run-p的功能相反)?