【问题标题】:Unable to connect to localhost of machine from docker container无法从 docker 容器连接到机器的本地主机
【发布时间】:2020-08-12 12:09:56
【问题描述】:

我的 GCP ES 服务端口转发到我机器的 localhost:9200。我可以从本地机器记录摄取。

我创建了 JAVA 脚本来执行相同的任务,当我在本地运行时它也运行良好

现在,我使用 dockerFile 创建了该 Java 项目的 docker Image,当我创建容器时,我收到以下错误

连接到 localhost:9200 [localhost/127.0.0.1] 失败:连接被拒绝(连接被拒绝)

Docker 命令: docker run -it --net="host" gcplogingest:latest mvn -f BEATLe/pom.xml test -Dcomponent=detect -DtestSuite=CommonXML/Detect_loginjectionGCP

注意: 我尝试过使用 --network="host" 但仍然遇到同样的错误。

请提出建议。

【问题讨论】:

  • 您是否尝试过像这样暴露端口:docker run -it --net="host" -p 9200:9200 gcplogingest:latest mvn -f BEATLe/pom.xml test -Dcomponent=detect -DtestSuite=CommonXML/Detect_loginjectionGCP
  • 我对 logingest 不熟悉,但看起来您正在容器中运行一个用于 logingest 的测试套件,而不是实际的应用程序?这真的是你想做的吗? docker 容器是继续运行还是在测试运行完成后退出到控制台?
  • @dravid ..感谢您的建议。我试过但得到同样的错误。基本上我想从 Container inside 与我的机器 localhost 交互
  • @jishi 我有 Java 程序,它在我的 localhost:9200 上运行的 ES 中摄取日志。我已经创建了该 Java 程序的映像并通过我在上面共享的命令运行该映像。所以基本上我的 Java 程序正在容器内运行,它试图连接到我的本地机器(MAc)localhost:9200,但这没有发生。
  • 您是否尝试过删除 --net=host,然后在您的 docker host.docker.internal 中使用 127.0.0.1?考虑到您的主机 localhost 应该与您的 docker localhost 不同,一旦您删除了 network=host,您需要从 docker 访问 host.docker.internal:9200

标签: docker elasticsearch


【解决方案1】:

您是否尝试过删除 --net=host 然后在您的 docker host.docker.internal 中使用 127.0.0.1?

考虑到您的主机 localhost 应该与您的 docker localhost 不同,一旦您删除了 network=host,您需要从 docker 访问到

host.docker.internal:9200

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2018-01-03
    • 2019-06-26
    • 2014-08-10
    相关资源
    最近更新 更多