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

Dockerizing springboot应用程序(在容器中)未连接到rabbitmq(在容器中):连接被拒绝

金阳曜
2023-03-14

我花了几个小时在谷歌上搜索,但似乎找不到正确的路径/文档来帮助我走上正确的道路:(

前提很简单。

我有一个在localhost:8080上打开的springboot应用程序。我有一个在localhost:15672上打开的rabbitmq服务器

当这两个应用程序都运行时,springboot应用程序将通过一些用户交互向Rabbitmq服务器发送消息。当我对这两个独立的服务进行dockerize(容器化?)时,问题就出现了。现在,当它们都被容器化时,我仍然可以分别使用localhost:8080和localhost:15672访问这两个应用程序。但是,当我的Spring启动应用程序提交用户消息时,我总是收到“连接拒绝”错误。

我做过的无用功(失败) :

    < li >两个容器在创建时都使用默认的“桥接”网络-无法工作。 < li >尝试创建我自己的用户定义的网络,将两个容器都放在自定义网络中-不起作用 < li >创建了一个docker-compose文件
version: "3.2"
services:
  rabbitmq:
    image: rabbitmq:management
    ports:
      - "5672:5672"
      - "15672:15672"
    networks:
      - hin-net
app-container:
    image: spring/spring-boot-docker:latest
    ports:
      - 8080:8080
    environment:
      - SPRING_RABBITMQ_HOST=html" target="_blank">rabbitmq
    depends_on:
      - rabbitmq
networks:
  hin-net:
    driver: bridge

唯一的事情是自动创建两个docker容器,而不是我通过“docker run”创建它们——这也不起作用。

有人能帮助链接或为我提供一些指导,说明如何让我的springboot应用程序查看并连接到我的RabbitMQ服务器吗?无论我看哪里,人们都说“确保他们在同一个docker网络中”,但这并不起作用。我怀疑我的docker撰写文件缺少一些重要的配置,但我不知道下一步该去哪里。

这两条线基本上是我的问题

    < li >从另一个容器连接到docker-container中的rabbit MQ < li >将docker容器中的java应用程序连接到rabbitmq

但他们死了,从未找到解决方案。

共有1个答案

汲灿
2023-03-14

Welp找到了答案。希望将来任何有同样问题的人都能看到这篇文章,并能够继续他们的项目!

显然,这不是一个泊坞窗问题。应用程序的主机名必须是运行 rabbitmq 的容器名。因此,在 springboot 的 application.properties 文件中,您可能将主机名设置为“localhost”,将其更改为容器名称,rabbit 将建立连接。

我读到这是一个rabbitmq依赖项。很弱,很弱。

希望这对任何人有所帮助

第二个参考:从Docker容器到本地主机的Rabbitmq连接被拒绝(第二个答案是正确的)

 类似资料:
  • 从我的spring-boot应用程序容器连接到Rabbitmq时,我遇到了一个错误。 我在docker compose文件中附加了两个docker容器(Rabbitmq和spring-boot应用程序)和网桥网络: 当我的Spring Boot应用程序尝试连接到后者时,Rabbitmq拒绝了连接。日志下方: 当我在我的spring boot应用程序容器(在我的例子中是orchestrator)中执

  • 我正在运行2个spring boot应用程序:一个客户端和rest-api。客户机与rest-api通信,rest-API与mongodb数据库通信。所有3层都在docker容器中运行。 我启动容器,通常指定docker文件中公开的端口,并将它们映射到主机上的端口,例如:-p 7070:7070,其中7070是docker文件中公开的端口。 当我通过< code > Java-jar[applic

  • 我有一个Java应用程序在Docker容器中运行,在另一个容器中运行。 如何连接容器以在Java应用程序中使用<code>rabbitmq</code>?

  • 试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常 我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose

  • 我有以下设置: 此外,在node.js进程stdout/stderr中没有错误或崩溃的迹象。 以下是我看到的错误: 会有什么问题?

  • 我想在一个容器中运行 RabbitMQ,在另一个容器中运行工作进程。工作进程需要访问 RabbitMQ。 我希望这些通过进行管理。 这是我的<代码>docker compose。迄今为止,yml文件: 所以我暴露了RabbitMQ端口。工作进程使用以下URL访问RabbitMQ: 这是他们在官方教程中使用的,但是已被替换为,因为容器应该可以使用与容器名称相同的主机名来发现: 默认情况下,“合成”会