Ping工作,但Java代码失败,主机在Docker中无法访问
我被困在docker和Javanetworking问题。 我有几个容器通过docker-compose启动。 有些人需要和别人交谈。 例如一个容器启动RabbitMQ,另一个容器连接到它。 一切工作正常,如果我在与容器名称连接的URL中使用。 但是,我想使用实际的docker主机名称地址(以便我使用的configuration文件可以从外部docker容器以外的机器使用),这不正常。 假设我有两个容器:
- 的RabbitMQ
- 的MessageConsumer
如果messageconsumerconfiguration为访问amqp://rabbitmq:5672
,则连接正常。 但是我的容器正在主机docker.mycompany.com
上运行。 如果我使用amqp://docker.mycompany.com:5672
作为url,那么使用java.net.NoRouteToHostException: Host is unreachable
messageconsumer java代码barfs java.net.NoRouteToHostException: Host is unreachable
。
但是,如果我在messageconsumer容器中启动一个shell,那么ping docker.mycompany.com
可以工作了! 为什么shell和ping查找主机地址,但不是Java? 我的图像基于openjdk:高山。
任何帮助感激!
我刚刚经历了同样的事情。 我没有一个深入的答案,可能不会,但它看起来像使用HOSTnetworking解决了这一点。
我不会说这个理想,但它应该让你去,直到有人想出更好的答案。
- VPS + Docker + Traefik +多个WordPress或docker4wordpress – 如何正确设置
- Windows数据持久性的Docker – 主机映射与数据卷
- 官方nginx和php docker图像的“Hello World”。 如何?
- docker-compose mysql容器拒绝访问wordpress容器
- 使用docker运行symfony2应用程序
- 有时在Docker中导入数据Mysql非常慢
- Docker与Django组合:'ascii'编解码器无法解码位置7中的字节0xcd:序号不在范围内(128)
- 错误发生为:w0无法读取带有错误的json文件:无法在使用docker-compose启动couchbase图像时解码JSON对象
- Django应用程序服务器挂起/不会在Docker Compose中启动