Spring boot org.apache.http.conn.HttpHostConnectException:连接到本地主机:8500[localhost/127.0.0.1]失败:连接被拒绝(连接被拒绝)

Spring boot org.apache.http.conn.HttpHostConnectException:连接到本地主机:8500[localhost/127.0.0.1]失败:连接被拒绝(连接被拒绝),spring-boot,docker,consul,spring-cloud-consul,Spring Boot,Docker,Consul,Spring Cloud Consul,我尝试在Windows10上用concur执行SpringBootJAR文件。首先,我在Windows10上安装了Concur。然后执行spring引导jar文件。以下是application.properties,供您参考 spring.cloud.consul.host=192.168.200.51 spring.cloud.consul.port=8500 spring.cloud.consul.discovery.healthCheckInterval=300s spring.cloud

我尝试在Windows10上用concur执行SpringBootJAR文件。首先,我在Windows10上安装了Concur。然后执行spring引导jar文件。以下是application.properties,供您参考

spring.cloud.consul.host=192.168.200.51
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.healthCheckInterval=300s
spring.cloud.consul.config.enabled=true
spring.application.name = blog-app-service
http://localhost:8500/ui
在web浏览器上可以成功发现服务。但是我把spring boot项目归档了。运行docker容器 这是成功的。但和领事的联系失败了。例外情况如下:

Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:221) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:165) ~[httpclient-4.5.8.jar!/:4.5.8]
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:140) ~[httpclient-4.5.8.jar!/:4.5.8]
        at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:61) ~[consul-api-1.4.1.jar!/:na]
在对接spring boot jar之前,我的项目与Concur连接没有错误。但在对接后,连接被拒绝。我在做码头作业时会错过任何程序吗?任何回复都将不胜感激。

使用主机.docker.internal作为docker提供的计算机主机

我想从容器连接到主机上的服务

主机的IP地址正在更改(如果您没有网络访问权限,则没有IP地址)。从18.03起,我们建议连接到特殊DNS名称host.docker.internal,该名称解析为主机使用的内部IP地址。这是出于开发目的,在Docker Desktop for Windows之外的生产环境中不起作用

更多信息:

Consor仍在主机上运行,而spring boot应用程序在容器中,而容器中的
localhost
在从主机和容器引用时是不同的。您也可以dockerize concur并将这些容器连接到同一网络(可能使用docker compose作为一个选项),或者从spring boot容器中找到主机IP并将其添加为concur主机。为了方便起见,我建议docker使用2个容器进行组装。