微服务Ribbon在docker中无法通过服务名(SERVICE-ID)映射到宿主机IP

I/O error on GET request for "http://API-ADMIN/microservice/1": 280d0f4200d8; nested exception isjava.net.UnknownHostException: 280d0f4200d8

 280d0f4200d8 : Docker镜像ID 

ribbon 无法映射到SERVICE的宿主机IP.

解决方法:

SERVICE的配置文件中添加:

eureka.instance.prefer-ip-address=true

该行配置信息详解:PATH

docker将SERVICE封装成镜像之后,执行:

docker run -d --name [容器名] --expose=8084 -p 8084:8084 -e "EUREKA_INSTANCE_IP-ADDRESS=[宿主机IP]" -e "SERVER_PORT=8084" [镜像名]/[版本号]

 执行完成后,如下所示,鼠标悬停在08e62989da4f:udo-product:8084,可看到左下角提示跳转地址为:http://129.204.42.203:8084/actuator/info(图片来源: qq920447939)

微服务Ribbon在docker中无法通过服务名(SERVICE-ID)映射到宿主机IP_第1张图片

另一种方法:Docker Swarm集群中跨Host主机通信

你可能感兴趣的:(Docker,springcloud)