【发布时间】: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