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
如果有人帮助或建议我解决此问题,那就太好了。预先感谢。
答案 0 :(得分:2)
您正在使用network_mode: host
,因此需要在主机OS级别上配置主机记录“ sp-app-reservation”(例如在/etc/hosts
中对其进行“硬编码”)。
更好的选择是创建docker网络,您可以在其中使用docker容器名称,并且仅发布选定的端口来托管OS。