gpt4 book ai didi

java - 使用 docker 的 Spring boot admin 解析 docker 主机名和 IP

转载 作者:行者123 更新时间:2023-12-02 06:17:46 25 4
gpt4 key购买 nike

我的问题/设置

我正在尝试构建一个独立的 Spring Boot 管理应用程序,我们的所有实例(在网络负载均衡器后面的私有(private) VPC 中)都可以注册。但我的 spring boot 应用程序本身在 docker 容器内运行,因此主机名和 ip 地址始终默认为容器主机名和容器 ip 地址。spring-boot admin 失败并显示

`Request failed with status code 502`
Connection refused: /1XX.17.0.2:8840

因为它无法找到具有主机名或 IP 地址的实际主机。

我尝试了什么

我在下面进行了设置(一个实例),

`spring.boot.admin.client.instance.service-base-url`

但不能将其用于多个客户端,因为我无法指定逗号分隔值。

此外,由于可以有n任何时候我不想使用以下属性的实例数。

`spring.boot.admin.client.instance.service-base-url`

所以我接受了省略spring.boot.admin.client.instance.service-base-url的建议在 spring-boot-admin git hub 页面和问题部分,并在下面使用

`spring.boot.admin.client.instance.prefer-ip=true`

但是由于我的应用程序在 Docker 容器内运行,Spring Boot 客户端使用容器 ID/IP 地址作为主机名/IP 地址来注册自身。

我还尝试了 "--net=admin-network","--name client"我的 AWS beanstalk 文件中的参数

"containerDefinitions": [
{
"name": "cloudy-email",
"image": "xxx.dkr.ecr.us-east-2.amazonaws.com/sba-admin-repo:xx_2019-04-24_14.36_e9aax8710",
"command": [ "--net=admin-network","--name client"],
"Update": "true",

我该如何克服这个问题?任何指针/引用将不胜感激。

最佳答案

您可以使用 docker run 命令的 --network host 选项使 docker 在主机网络中运行。这将使容器采用与主机虚拟机相同的 IP 地址。另外,检查您是否通过 Docker 和主机防火墙(安全组)公开管理端口。

更多信息:https://docs.docker.com/network/host/

关于java - 使用 docker 的 Spring boot admin 解析 docker 主机名和 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55856945/

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