org.apache.http.conn.HttpHostConnectException: подключение к localhost: 8500 [localhost / 127.0.0.1] не удалось: соединение отклонено (соединение отклонено)

Я пытаюсь запустить файл jar загрузки spring с помощью Consul на Windows 10. Сначала я установил Consul на Windows 10. Затем я запускаю файл jar загрузки spring. Для вашей информации ниже находится 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 в веб-браузере может успешно обнаружить службу. Но я докерирую проект весенней загрузки. Контейнер докера запущен успешно. Но связь с консулом не удалась. Исключение, как показано ниже,

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, мой проект без ошибок подключается к consul. Но после докеризации в соединении отказывается. Пропускаю ли я какие-либо процедуры при докерзинге? Любой ответ будет благодарен.


person Joseph Hwang    schedule 01.08.2019    source источник
comment
Consul все еще работает на хост-машине, в то время как приложение загрузки Spring находится в контейнере, а localhost в контейнере отличается при обращении с хоста и из контейнера. Либо вы dockerize consul, и вы подключаете эти контейнеры к той же сети (возможно, использование docker-compose было бы хорошим вариантом), либо вы находите IP-адрес хоста из весеннего загрузочного контейнера и добавляете его в качестве хоста consul. Я бы предложил docker-compose с двумя контейнерами для простоты.   -  person Michał Krzywański    schedule 01.08.2019


Ответы (1)


Используйте host.docker.internal в качестве хоста вашего компьютера из докера.

Я ХОЧУ ПОДКЛЮЧИТЬСЯ ИЗ КОНТЕЙНЕРА К СЕРВИСУ НА ХОЗЯИНЕ

У хоста меняющийся IP-адрес (или его нет, если у вас нет доступа к сети). Начиная с 18 марта, мы рекомендуем подключаться к специальному DNS-имени host.docker.internal, которое разрешается во внутренний IP-адрес, используемый хостом. Это сделано для целей разработки и не будет работать в производственной среде за пределами Docker Desktop для Windows.

Дополнительная информация: https://docs.docker.com/docker-for-windows/networking/#known-limitations-use-cases-and-workarounds

person nmyk    schedule 15.08.2019