如何在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/
默认情况下,容器主机名是容器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容器运行时。