【问题标题】:Accessing Spring boot Application refused to connect with IP 192.168.99.100 running in docker tool box访问 Spring boot 应用程序拒绝连接在 docker 工具箱中运行的 IP 192.168.99.100
【发布时间】:2019-05-21 19:06:16
【问题描述】:

我正在 docker 工具箱中运行一个 Spring Boot 应用程序。应用程序在应用程序属性中设置的端口 8380 上运行。但是,当我在容器中运行其映像时,我使用端口 8380:8082 发布。当我从 ip 192.168.99.100(我的 docker 机器 ip)和端口 8380 访问它时,它给了我 ERR_CONNECTION_REFUSED 错误。 192.168.99.100 拒绝连接。

有什么想法可能是错的吗?

我尝试使用 localhost 而不是 docker-machine ip。我检查了 kitematic 的访问 url,即 192.168.99.100:8380。使用它不起作用。

这是我的 DockerFile:

FROM java:8
EXPOSE 8082
ADD /build/libs/tsi-csrportal-gui-2.0-SNAPSHOT.jar dockerDemoCsrportal.jar
ENTRYPOINT ["java", "-DTSI_APP_NAME=csrportal", "-DTSI_ENV=test", "-Dtsi.log.console", "-jar", "dockerDemoCsrportal.jar"]

我希望服务在我使用正确的端点访问时给出 json 响应。类似于我在没有 docker 工具箱的情况下运行 spring boot 应用程序。 (唯一的变化是现在我使用 docker machine ip 而不是使用 localhost)

【问题讨论】:

  • 您的应用程序是否在端口 8082 上运行?如果不是,请在 DockerFile 中公开应用程序运行的端口。
  • 感谢@NareshKumar。我的应用程序在端口 8380 上运行。我将它暴露在我的 DockerFile 中并且它工作了 :)

标签: java spring-boot docker


【解决方案1】:

当您在 docker 中公开一个端口时,这意味着您可以使用 [container_ip]:[exposed_port] 访问该容器。
但是,当您将暴露的端口映射到另一个端口时,这意味着您可以使用 [host_ip]:[mapped_port] 访问容器。
所以你可以像localhost:8380192.168.99.100:8082一样访问

【讨论】:

  • 我试过 localhost:8380, 192.168.99.100:8082, 192.168.99.100:8380 他们都没有工作。它仍然显示 ERR_CONNECTION_REFUSED。
猜你喜欢
  • 2018-02-07
  • 2019-04-28
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 2019-06-06
  • 2020-01-19
  • 2021-06-24
  • 2021-10-17
相关资源
最近更新 更多