Docker容器无法连接到主机networking上的IP

我有一个包含三个小型Spring Boot应用程序的系统,每个应用程序都有一个不同的用途,其中包含REST端点。 这三个应用程序都是为了处理同一个数据库(MariaDB)。 目前,该系统作为四个独立的docker工作。 三个应用程序的三个docker容器,MariaDB的第四个容器(基于MariaDB Docker镜像)。 所有三个应用程序容器都使用–linknetworking模式连接到数据库容器。

每个应用程序泊坞窗都是从相同的图像启动,使用:

docker run -i -t -p 8080:8080 --link mariadb:mariadb javaimage /bin/bash 

这个docker系统目前正常工作。 所有三个应用程序都可以调用MariaDB,通过调用http:// localhost:8080 / pathToEndpoint,可以通过REST调用从主机访问每个应用程序。 该项目最近扩大了,并增加了新的要求。 我们使用Netflix Eureka作为服务查找点,将来可以帮助允许将这些Docker部署到任何位置,只需调用Docker的软件进行最less的更改即可。 Netflix Eureka要求我在应用程序启动时有效地“登入”。 这一切都是由Spring Boot本身处理的,所以当启动应用程序时,这个“检入”是启动过程的一部分。 尤里卡服务器与主机在同一networking上,并且暂时通过IP地址访问。 如果运行此Eureka签入组件的Spring Boot应用程序直接在主机上启动,则一切正常。 该应用程序成功呼叫尤里卡服务器,并通知该应用程序的存在。 如果我在同一台主机上的Docker容器中运行相同的应用程序,则连接被拒绝时将失败。 经过调查,我发现我甚至无法从Docker容器中ping尤里卡服务器的IP地址,解释为什么它失败。 我继续进一步testing什么不工作,并发现我可以ping外部网站,如谷歌没有问题,但我的networking服务器的任何内部是不可达的,当我尝试从Docker容器。

所以我的问题是,我错过了什么networkingconfiguration导致这个? 我认识到Docker有很多networkingconfiguration选项,但是我一直没有find有类似问题的人。

任何帮助表示赞赏。 谢谢!