首页 > 解决方案 > 为什么不能从浏览器访问我修改后的 docker elasticsearch 副本?

问题描述

我正在尝试根据来自 Docker 的官方 Elasticsearch 映像运行自定义映像。但是,当我尝试通过 访问它时localhost:9200,它不起作用。

我创建了一个 custom-elasticsearch.yml 文件,主机设置为 127.0.0.1 (localhost),然后构建一个 elasticsearch-custom 映像并运行它。步骤可以在下面的链接中找到。 https://www.elastic.co/guide/en/elasticsearch/reference/6.4/docker.html

当我尝试通过浏览器访问弹性搜索时localhost:9200,它无法连接。我该如何修复?

Dockerfile 中用于 elasticsearch-custom 的代码

FROM docker.elastic.co/elasticsearch/elasticsearch:6.4.3
COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/

构建自定义泊坞窗

docker build --tag=elasticsearch-custom .

运行 elasticsearch-custom 的方法

docker run -d -ti -v /usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch-custom

当我localhost:9200在浏览器中键入时,我希望它会从弹性搜索中返回数据。

但是浏览器却说无法连接。

标签: dockerelasticsearchdockerfile

解决方案


您需要在 Docker 运行命令中添加以下参数,以便您的容器和主机操作系统将共享相同的网络接口。然后你应该能够使用 localhost:9200 访问 Docker 容器

--network=host

最终的运行命令应该是这样的;

docker run -d -ti -v /usr/share/elasticsearch/data --network=host -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch-custom


推荐阅读