连接到 Docker 容器连接被拒绝 - 但容器是 运行
Connecting to Docker container connection refused - but container is running
我正在 运行ning 2 spring 启动应用程序:一个客户端和 rest-api。客户端与 rest-api 通信,rest-api 与 mongodb 数据库通信。所有 3 层都在 运行 容器内 docker。
我启动容器通常在 docker 文件中指定公开的端口并将它们映射到主机上的端口,例如:-p 7070:7070,其中 7070 是公开的端口Docker文件。
当我通过 java -jar [application_name.war]
命令 运行 应用程序时,应用程序工作正常,它们都可以通信。
但是,当我 运行 应用程序在 Docker 容器中时,我收到连接被拒绝的错误,例如当客户端尝试连接到 rest-api 我得到一个http://localhost:7070 处的连接被拒绝错误。
但是命令 docker ps
显示容器都在 运行ning 并侦听暴露和映射的端口。
我不知道为什么容器无法识别其他容器正在 运行正在监听它们的端口。
这与 iptables 有什么关系吗?
感谢任何帮助。
谢谢
编辑 1:运行 容器内的应用程序在我的机器上工作正常 ,并且它们不会抛出任何连接被拒绝的错误。该错误仅发生在该特定的不同机器上。
我用容器 linking 来解决这个问题。确保在 运行 时将 --link <name>:<alias>
添加到您想要 link 的容器中。 <name>
是您要 link 到的容器的名称,<alias>
将是 Spring 的 application.properties 中条目的 host/domain文件。
示例:
spring.data.mongodb.host=mongodb
如果在 运行 时提供的别名是 'mongodb':
--link myContainerName:mongodb
我正在 运行ning 2 spring 启动应用程序:一个客户端和 rest-api。客户端与 rest-api 通信,rest-api 与 mongodb 数据库通信。所有 3 层都在 运行 容器内 docker。
我启动容器通常在 docker 文件中指定公开的端口并将它们映射到主机上的端口,例如:-p 7070:7070,其中 7070 是公开的端口Docker文件。
当我通过 java -jar [application_name.war]
命令 运行 应用程序时,应用程序工作正常,它们都可以通信。
但是,当我 运行 应用程序在 Docker 容器中时,我收到连接被拒绝的错误,例如当客户端尝试连接到 rest-api 我得到一个http://localhost:7070 处的连接被拒绝错误。
但是命令 docker ps
显示容器都在 运行ning 并侦听暴露和映射的端口。
我不知道为什么容器无法识别其他容器正在 运行正在监听它们的端口。
这与 iptables 有什么关系吗?
感谢任何帮助。
谢谢
编辑 1:运行 容器内的应用程序在我的机器上工作正常 ,并且它们不会抛出任何连接被拒绝的错误。该错误仅发生在该特定的不同机器上。
我用容器 linking 来解决这个问题。确保在 运行 时将 --link <name>:<alias>
添加到您想要 link 的容器中。 <name>
是您要 link 到的容器的名称,<alias>
将是 Spring 的 application.properties 中条目的 host/domain文件。
示例:
spring.data.mongodb.host=mongodb
如果在 运行 时提供的别名是 'mongodb':
--link myContainerName:mongodb