docker - 为什么不能从浏览器访问我修改后的 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
在浏览器中键入时,我希望它会从弹性搜索中返回数据。
但是浏览器却说无法连接。
解决方案
您需要在 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
推荐阅读
- java - Java中的SOAP消息,WSDL URL替代
- perl - perlcritic 消息:在 void 上下文中使用的映射
- c# - HiQPdf 没有在 pdf 上呈现 Chart.js 图表
- java - 解析多维 JSON 数组错误
- javascript - Next JS 和 Vercel - 开发与生产
- javascript - 使用 lodash 迭代数组和过滤器
- javascript - Selenium JavaScript - 如何在 Jest 测试用例中设置测试 ID
- swift - 如何在小部件 iOS14 中刷新多个计时器?
- javascript - keyCode 和哪些已被弃用 - 那么为什么这不起作用?
- blockchain - 如何在 NEAR 上部署锁定合约