gpt4 book ai didi

docker - 使用Dropwizard访问Elasticsearch Docker-拒绝连接

转载 作者:行者123 更新时间:2023-12-03 01:39:31 24 4
gpt4 key购买 nike

简而言之-我可以在单独的Docker容器中运行Elasticsearch&Dropwizard应用程序并允许他们互相看到吗?

我正在从Docker(在Mac上)运行Elasticsearch 6.2.2。使用命令..

docker run -p 9200:9200 -p 9300:9300 -e "network.host=0.0.0.0" \ 
-e "http.port=9200" -e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:6.2.2

我可以直接在Mac上使用Postman很好地访问Elasticsearch(POST&GET)
localhost:9200/testindex/_search

但是,当从另一个访问docker Elasticsearch实例的docker镜像运行Dropwizard应用程序时,我使用相同的主机和端口(localhost 9200)拒绝连接。

从IDE直接运行Dropwizard应用程序时,只有从docker镜像运行并从其他镜像访问ES时,我一点都没有问题。

docker 镜像-p 8080:8080 -p 8081:8081 testapp

过去有没有其他人遇到过类似的问题或解决了这个问题?
我假设它与“网络”相关,并且从一个docker镜像连接到localhost不会映射到另一个docker镜像

最佳答案

您面临的问题是传递给dropwizard容器的URL中。由于默认情况下容器具有自己的网络,因此localhost的值表示dropwizard容器本身,而不是您从容器外部看到的本地主机。

请看一下docker联网,如何按名称链接两个容器。我建议您在本地计算机上检查docker-compose以获得多容器设置。

可行的方法(但不是很好的做法)是将dropwizard容器的机器ip传递给Elasticsearch主机,因为您创建了从主机到Elasticsearch容器的端口映射。但是最好看看compose如何做到这一点。

有关如何使用compose的详细信息,请查看this answer with a similar example

关于docker - 使用Dropwizard访问Elasticsearch Docker-拒绝连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49039092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com