docker - 如何在docker中为spring-cloud服务注册IP地址而不是容器ID中的服务?

标签 docker spring-cloud netflix-eureka

我尝试设置eureka.instance.hostname、preferIpAddress、ipAddress、instanceId,但实例id仍然是docker容器id。如何将它们设置为 IP 地址?

eureka:
  instance:
    hostname: ${server.host}
    preferIpAddress: true
    ipAddress: ${server.host}
    instanceId: ${server.host}
  client:
    serviceUrl:
      defaultZone: 
        http://pitbull:j1n3v9z9j3nc@${server.remote}:8888/eureka/

screenshot01

最佳答案

默认情况下,容器主机名是容器 ID。您可以使用 docker run 命令中的 --hostname 标志覆盖此设置。

不过,我认为这不是问题的根源..

听起来您真正想要的是将服务配置设置为绑定(bind)到容器的本地主机地址,然后:

  • 使用 docker run --net=host ... 运行 docker 镜像(将容器直接绑定(bind)到主机网络接口(interface)/IP)
  • 使用docker run --net=bridge -p 8888:8888运行docker镜像(--net=bridge是默认运行模式,不需要)-p 8888:8888 会将端口从您的主机 IP 转发到 docker 容器运行时。

关于docker - 如何在docker中为spring-cloud服务注册IP地址而不是容器ID中的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46459555/

相关文章:

java - Feign客户端执行失败 : java. lang.reflect.InitationTargetException

spring - 了解Spring Cloud Eureka Server self 保存和续订阈值

docker - 让 docker build --memory-swap=20g 使用可用的交换空间?

Docker swarm 尝试解析我的 compose 文件中 ENV 变量的值(因为它有一个 go 模板)并给我一个错误

docker - 与静态链接的 EXE 相比,docker 容器有哪些优势?

spring-cloud - 如何使用swagger-codegen-maven-plugin生成spring cloud feign客户端

docker - 在 Docker 容器启动时启动 "roscore"后跟 "rosrun ...."的最佳做法是什么?

spring-cloud - 我们可以在@FeignClient 的 fallback 或 fallbackFactory 中抛出异常吗

java - 如何刷新/更新@Autowired EurekaClient

java - Eureka 从一个 Spring Boot 应用程序注册多个实例