未知主机异常

时间:2019-02-11 18:04:58

标签: docker docker-compose

Docker容器上的未知HostException异常。

我有多项服务,我的docker-compose具有以下代码

version: '3.5'

    services:


      reservation:
        container_name: sp-app-reservation
        image: swimming-pool/reservation-service
        environment:
         - SPRING_PROFILES_ACTIVE=dev
        ports:
         - 8181:8182
        depends_on:
         - notification
        network_mode: host
        restart: always


      web:
        container_name: sp-app-web-ui
        image: swimming-pool/web-ui-service
        environment:
         - SPRING_PROFILES_ACTIVE=dev
        ports:
         - 8080:8081
        depends_on:
         - notification
         - reservation
         - fileupload
        network_mode: host
        restart: always  

      eureka:
        container_name: sp-app-eureka
        image: swimming-pool/discovery-service
        environment:
         - SPRING_PROFILES_ACTIVE=dev
         - SERVICE_PORT_RESERVATION=8181
         - SERVICE_PORT_FILEUPLOAD=8686
         - SERVICE_PORT_WEB=8080
        ports:
         - 8761:8762
        network_mode: host
        restart: always

我正在使用Rest Template使用“ http://sp-app-reservation:8182/rest/reservation”从Web服务调用到保留服务。

我面临以下异常,并且我可以看到我的容器使用相同的名称运行。

org.springframework.web.client.ResourceAccessException: I/O error on GET 
request for "http://sp-app-reservation:8182/rest/reservation/":
sp-app-reservation;  nested exception is java.net.UnknownHostException: 
sp-app-reservation

如果有人帮助或建议我解决此问题,那就太好了。预先感谢。

1 个答案:

答案 0 :(得分:2)

您正在使用network_mode: host,因此需要在主机OS级别上配置主机记录“ sp-app-reservation”(例如在/etc/hosts中对其进行“硬编码”)。

更好的选择是创建docker网络,您可以在其中使用docker容器名称,并且仅发布选定的端口来托管OS。