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

我试图设置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。 您可以使用--hostname docker run命令中的--hostname标志覆盖此项。

我不认为这是你的问题的根源虽然..

这听起来像你真正想要的是设置你的服务configuration绑定到容器的本地主机地址,然后:

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