当前位置: 首页 > 知识库问答 >
问题:

将Docker容器连接到本地Elasticsearch服务

连乐
2023-03-14

我正在运行Docker容器,其中运行一个jar文件。

此jar文件需要访问Elasticsearch以读取数据,并且此Elasticsearch服务安装在本地计算机上(不在Docker容器中)

我需要从Docker容器连接到本地Elasticsearch服务以使其正常工作

我在Dockerfile中写了EXPOSE 9200 9300 service-port,我的Docker run命令如下,

“docker run-itd--memory=1g-p9300:9300-p9200:9200-p服务端口:服务端口--name服务名称服务名称-XX:UnlockExperimentalVMOptions-XX:UseCGroupMemoryLimitForHeap-XX:MaxRAMFraction=2-XshowSettings:vm”

当我运行这个命令时,我得到以下错误,

“docker:来自守护程序的错误响应:驱动程序未能在endpoint服务名称(3de884dd9a62a4a989475721cc4cdf9cb6b78f1a8d345e590471d85052d6a4de)上编程外部连接:启动userland代理时出错:侦听tcp 0.0.0:9300:绑定:地址已在使用。”

P.S=在我的本地服务器上,我需要保持elasticsearch服务打开

共有1个答案

景书
2023-03-14

您引用的EXPOSE行和docker run-p 9200:9200-p 9300:9300选项都告诉docker您正在运行一个提供Elasticsearch服务器的容器,您希望侦听这些端口上的连接。如果您只是试图建立到其他地方运行的Elasticsearch服务的出站连接,您不需要这些选项,应该删除它们。

 类似资料:
  • 我正在处理dockerize我的本地服务器,在那里有数据库,应用程序服务器和所有额外的配置来部署我的应用程序。目前,我已经创建了3个docker容器,运行像Tomcat或WildFly这样的应用程序服务器,并公开了部署的应用程序的端口,这些端口Java并从/读写数据。到我本地的数据库。在每个应用程序的文件中,我已经通过在我的实际配置中配置了访问权限,没有docker也可以。 我想将容器上的应用程序

  • 问题内容: 我正在运行一个docker mysql映像,以下是docker-compose.yml文件的外观: 这很好。 我的问题是:如何从主机(我的Macbook)上的命令行mysql客户端连接到在该容器上运行的MySQL实例? 澄清: 我有一台装有Docker的Macbook 我有一个带有mysql的docker容器 我想从Macbook的终端连接到上述容器上运行的mysql实例 我不想使用命

  • 我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?

  • 问题内容: 我正在使用docker- compose 运行一个应用程序。一切正常,通过连接到容器内的Mongo,我可以看到所有数据。但是,当我连接到RoboMongo时,我看不到任何数据。 我该如何解决这个问题? 问题答案: 您应该在Docker容器内建立到MongoDB的Robomongo SSH隧道连接。首先,您应该在docker容器中安装一个ssh服务器。 https://docs.dock

  • 问题内容: 这是关于如何通过Docker连接到本地服务的更普遍的问题。有在Github上的问题类似的问题在这里,似乎并未有任何决议。我真正想要的是能够针对本地开发MySQL服务器在本地进行开发,然后一旦准备好进行部署,就可以针对新创建的部署候选docker映像进行本地测试。 理想情况下,两者都可以从同一位置获取设置,所以我可以放。这似乎是一个典型的用例。目前有这种可能吗? 我正在将Boot2Doc

  • 我试图在我本地的电脑上使用kafka(Windows10)作为生产者,在docker容器(ubuntu)上使用spark流作为消费者。我的示例在容器中一起工作,但我需要在本地计算机上创建流。 在容器的另一边,我正在监听端口2181来接收流。 我希望你能帮助我。谢了。