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

连接到Docker容器连接被拒绝-但容器正在运行

充普松
2023-03-14

我正在运行2个spring boot应用程序:一个客户端和rest-api。客户机与rest-api通信,rest-API与mongodb数据库通信。所有3层都在docker容器中运行。

我启动容器,通常指定docker文件中公开的端口,并将它们映射到主机上的端口,例如:-p 7070:7070,其中7070是docker文件中公开的端口。

当我通过< code > Java-jar[application _ name . war]命令运行应用程序时,应用程序工作正常,它们都可以通信。

但是,当我在 Docker 容器中运行应用程序时,我会收到连接被拒绝错误,例如,当客户端尝试连接到 rest-api 时,我收到一个连接被拒绝错误,http://localhost:7070。

但是命令<code>docker ps</code>显示容器都在公开和映射的端口上运行和侦听。

我不知道为什么容器没有认识到其他容器正在运行并侦听其端口。

这和iptables有什么关系吗?

感谢任何帮助。

谢谢

编辑1:在容器内运行时的应用程序在我的机器上工作正常,并且它们不会抛出任何连接拒绝错误。该错误仅发生在该特定的不同计算机上。

共有1个答案

巢承安
2023-03-14

我使用容器链接来解决这个问题。确保添加 --链接

例:

spring.data.mongodb。host=mongodb如果在运行时提供的别名是“mongodb”:

--link myContainerName:mongodb

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

  • 我试图为Nginx+PHP(Laravel)+MySQL构建docker组合容器,但我不断收到连接拒绝错误 Docker-compose.yml 在中,我有一个全新的Laravel应用程序,它具有基本的SQL设置 所有容器都运行时没有错误,我可以使用以下方法连接到MySQL容器 但当我试图从浏览器访问或将ssh直接导入php容器时,我总是得到错误2002。 我有nginx和mysql运行在服务器上

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

  • 问题内容: 我正在尝试设置一个docker- compose文件,该文件旨在用Supervisor替换运行多个进程(RQ worker,RQ仪表板和Flask应用程序)的单个Docker容器解决方案。 主机系统是Debian 8 Linux,我的样子如下(我删除了所有其他条目以减少错误源): “ rq-worker1”是Python RQ工作者,尝试通过本地主机和端口6379连接到Redis,但无

  • 我花了几个小时在谷歌上搜索,但似乎找不到正确的路径/文档来帮助我走上正确的道路:( 前提很简单。 我有一个在localhost:8080上打开的springboot应用程序。我有一个在localhost:15672上打开的rabbitmq服务器 当这两个应用程序都运行时,springboot应用程序将通过一些用户交互向Rabbitmq服务器发送消息。当我对这两个独立的服务进行dockerize(容

  • 我使用docker撰写启动一个mysql da和一个springstart应用程序。 这是我的docker-compose.yml 这是我的application.properties 在这里,我创建了jdbi: 不管我怎么做,我都无法让集装箱在码头内相互交谈。如果我单独启动sql,我可以在主机中看到连接(在datagrip中)。如果我从容器中运行java程序,它会看到主机中的数据库。即使我运行d