春季启动dockerized应用程序之间的沟通

我新使用春季启动和docker,我面临运行docker集装箱的问题。 在debugging模式下,应用程序启动时没有问题,但是当我将它们作为容器运行时,出现错误。 例如,我有我的服务器configuration与所有的YML文件,也尤里卡属性。 configuration服务器启动完美,但不是尤里卡服务器,它必须find它的configuration服务器的configuration,因为这些:

uri: ${vcap.services.config-service.credentials.uri:http://127.0.0.1:8888} 

在尤里卡的日志中,我可以find:

无法findPropertySource:“ http://127.0.0.1:8888/server-eureka/default ”的GET请求上的I / O错误:连接被拒绝; 嵌套的exception是java.net.ConnectException:连接被拒绝

所以我看到,尤里卡不能t connect to the config server for a reason I can understund。 也许我错过了我的docker文件中的东西。

如果你不使用docker链接容器,你只能使用公共IP地址。 Docker会为每个正在运行的容器分配一个默认不可访问的IP地址。 只有当你开始公开端口时,会有一个iptables的入口,它将主机公共ip地址和给定的端口连接到docker容器的内部使用的端口和(dynamic分配的)ip地址。 这也是为什么127.0.0.1不起作用,因为它会查看容器本地上下文,但tgere服务没有运行。