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

时间:2017-09-28 01:26:36

标签: 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

1 个答案:

答案 0 :(得分:2)

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

我认为这不是你问题的根源。

听起来你真正想要的是将服务配置设置为绑定到容器的localhost地址,然后是:

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