我正在尝试基于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中返回数据。
但是浏览器却说无法连接。
答案 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