为什么无法从浏览器访问我修改过的docker elasticsearch副本?

时间:2019-07-26 03:20:12

标签: docker elasticsearch dockerfile

我正在尝试基于Docker的官方Elasticsearch映像运行自定义映像。但是,当我尝试通过localhost:9200访问它时,它将无法正常工作。

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

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

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时,我希望它会从elasticsearch中返回数据。

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

1 个答案:

答案 0 :(得分:0)

您需要在Docker run命令中添加以下参数,以便您的容器和主机操作系统共享相同的网络接口。然后您应该能够使用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