【问题标题】:"java.net.NoRouteToHostException: No route to host" between two Docker Containers两个 Docker 容器之间的“java.net.NoRouteToHostException: No route to host”
【发布时间】:2015-09-26 10:10:28
【问题描述】:

注意:问题与 Bluemix docker 支持有关。

我正在尝试连接部署在 Bluemix 中的两个不同的 Docker 容器。我得到了例外:

 java.net.NoRouteToHostException: No route to host

当我尝试这种连接时(在 Liberty 上运行的 Java EE 应用程序试图访问 MySQL)。我尝试使用 MySQL Docker Container 的私有和公共 IP。

关键是我能够从 Bluemix 外部访问 MySQL Docker Container。所以IP、端口和MySQL本身都ok。

这似乎与 Bluemix 中 Docker 容器支持的内部网络有关。如果我尝试从 Bluemix 内部访问它会失败,如果我从外部访问它会工作。有什么帮助吗?

更新:正如您在 cmets 中看到的那样,我继续调查,这似乎是一个时间问题。我的意思是,一旦容器启动并运行,似乎仍有一些连接工作尚未完成。如果我能够等待大约 1 分钟,然后再尝试连接它就可以了。

【问题讨论】:

  • 它们是在一台主机上运行还是在不同主机上运行?
  • 我无法回答。这两个容器都部署在 Bluemix 中,由平台决定内容和位置。作为最终用户,我无权访问此类信息。我只知道他们都有一个私有和公共 IP。
  • 所以你是说容器 1 不能在公共或私有 ip 上与容器 2 通信?
  • 对。我有一个运行良好的部署。如果像 Chasmo 之前询问的那样将容器部署在不同的主机中,是否有可能存在任何类型的防火墙或任何东西?还在调查中……
  • 我失败了。然后我重新启动了前端容器(未重新部署)然后它工作了。不明白。我没有触及任何源代码,也没有触及后端容器。还在调查中……

标签: docker containers ibm-cloud


【解决方案1】:

60 秒应该是创建容器后网络开始工作的经验法则。

【讨论】:

  • 谢谢@ywang。你知道这样的“规则”是否记录在任何地方?
  • document 表示大约需要等待 30 秒,但有时可能需要更长的时间,我们正在努力缩短等待时间。谢谢。
  • 非常感谢@ywang,我错过了那段。
猜你喜欢
  • 2017-04-20
  • 2019-12-04
  • 2018-09-29
  • 1970-01-01
  • 2020-03-23
  • 2013-08-21
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
相关资源
最近更新 更多