gpt4 book ai didi

java - Spring Boot dockerized 应用程序之间的通信

转载 作者:行者123 更新时间:2023-12-02 04:23:48 27 4
gpt4 key购买 nike

我刚开始使用 spring boot 和 docker,但在运行 docker 容器时遇到了问题。在 Debug模式下,应用程序启动没有问题,但是当我将它们作为容器运行时,出现了问题。例如,我的服务器配置包含所有 yml 文件以及 eureka 属性。配置服务器可以完美启动,但 Eureka 服务器不能启动,它必须在配置服务器中查找其配置,因为:

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

在 Eureka 的日志中我可以找到:

Could not locate PropertySource: I/O error on GET request for "http://127.0.0.1:8888/server-eureka/default":Connection refused; nested exception is java.net.ConnectException: Connection refused

所以我发现 eureka 无法连接到配置服务器,原因我无法理解。也许我错过了 docker 文件中的某些内容。

最佳答案

如果您不使用 docker 链接容器,则必须仅使用公共(public) IP 地址。 Docker 将为每个正在运行的容器分配一个自己的 IP 地址,默认情况下该地址是不可访问的。仅当您开始公开端口时,才会有一个 iptables 条目将主机公共(public) IP 地址和给定端口链接到 Docker 容器的内部使用端口和(动态分配的)IP 地址。这也是 127.0.0.1 不起作用的原因,因为它会查看容器本地上下文,但服务未运行。

关于java - Spring Boot dockerized 应用程序之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com