Spring 在 docker swarm 中启动 Eureka 注册了错误的内部 docker ip

Spring boot Eureka in docker swarm registering wrong internal docker ip's

Docker 节点正在 springboot-eureka 中注册 inter ip 我的配置如下 1. Spring-boot eureka部署到swarm(1节点) 2. 创建 spring-boot 客户端容器(2 个节点)并注册到 eureka

以上容器分别部署,客户端conf如下

eureka:
  instance:
    prefer-ip-address: true
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka-server-address/eureka/
    healthcheck:
       enabled: true
Spring:
  cloud:
    inetutils:
      ignored-interfaces:
      - eth0
      - eth1
      - eth2
      - eth3
      - lo

IP 为 172.1.0.1 而不是真正的外部 IP。 docker 容器无法与真实 IP 相互连接。

docker-撰写 network_mode: bridge

更新:- 集群以我们认为的不同方式运行。 1. ip 是 docker 的内部网络分布,这是我们所知道的 2. 整个蜂群本身并不是内部工作的大网络(新课) 3. 我们需要在 swarm 内部创建一个新网络,以便容器相互通信(已知+新课..是的,我很困惑)

对于正在寻找答案的人,请研究 docker 集群网络选项并创建 2 个网络,1 个用于内部流量,1 个用于外部流量,并将它们分配给 docker 中的容器-撰写)。我能够让它为我的 POC 工作,但它往往很难在企业规模上实现。