gpt4 book ai didi

docker - 当 Docker 容器发布端口时,应用程序使用 IP 而不是主机名在 Eureka 中注册

转载 作者:行者123 更新时间:2023-12-02 18:15:37 25 4
gpt4 key购买 nike

我将我的 Spring Boot 应用程序 dockerize 并部署到 Docker Swarm。

如果我不发布我的应用程序公开的端口,那么 Eureka 客户端会将主机名作为实例的地址发送,例如 http://ecf28bdd26c5:8080 - 不错

如果我发布端口(使用 Docker 的 --publish 参数),那么它会使用 IP 注册,例如 http://10.255.0.25:8080 -

即使我明确设置 eureka.instance.prefer-ip-address=false 也会这样做.

如何强制 Eureka 客户端真正使用主机名?

最佳答案

通过显式设置主机名 eureka.instance.hostname=${SOME_VAR}或忽略某些接口(interface):

来自 documentation :以下配置将忽略“docker0”接口(interface)和所有以“veth”开头的接口(interface)。

application.yml
spring:
cloud:
inetutils:
ignoredInterfaces:
- docker0
- veth.*

您还可以使用正则表达式列表强制仅使用指定的网络地址:
application.yml
spring:
cloud:
inetutils:
preferredNetworks:
- 192.168
- 10.0

关于docker - 当 Docker 容器发布端口时,应用程序使用 IP 而不是主机名在 Eureka 中注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594565/

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