docker搭建elasticsearch
时间: 2024-12-31 08:36:37 浏览: 11
### 使用Docker部署Elasticsearch教程
#### 准备工作
确保已安装并配置好Docker环境。
#### 下载所需镜像
为了保持组件之间的兼容性,建议统一版本号。对于本案例中的Elasticsearch、Kibana以及IK分词器均采用7.17.5版本[^1]:
```bash
docker pull elasticsearch:7.17.5
docker pull kibana:7.17.5
```
#### 启动单节点Elasticsearch实例
创建一个新的容器来运行Elasticsearch服务,并映射主机端口到容器内部的服务端口以便外部访问:
```bash
docker run -d --name es \
-e "discovery.type=single-node" \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.17.5
```
此命令设置了`discovery.type=single-node`参数以防止集群发现机制尝试寻找其他节点,在开发环境中这通常是不需要的功能;同时开放了两个常用的通信端口用于客户端连接和节点间通讯。
#### 安装插件——IK分词器
通过进入正在运行的Elasticsearch容器内执行命令的方式安装中文分词插件IK Analyzer:
```bash
docker exec -it es /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
exit
```
注意链接地址应匹配所使用的Elasticsearch版本,上述示例中为v7.17.5版本对应的下载路径[^2]。
#### 配置Kibana可视化工具
同样地,启动一个名为kibana的新容器并与之前建立好的Elasticsearch实例关联起来:
```bash
docker run -d --name kibana \
--link es:elasticsearch \
-p 5601:5601 \
kibana:7.17.5
```
这里利用了Docker网络特性使得两者的交互更加简便可靠,而暴露出来的5601端口则允许用户通过浏览器界面操作数据索引等任务。
#### 进阶设置-ElasticHQ管理平台可选
如果希望获得更强大的管理和监控能力,可以考虑引入第三方开源项目ElasticHQ作为辅助手段之一:
```bash
docker run -d --name elastic-hq \
-p 5000:5000 \
--restart always \
elastichq/elasticsearch-hq
```
该应用提供了图形化的Web控制面板让用户能够直观地查看集群状态、性能指标等方面的信息[^3]。
#### 构建多节点集群(适用于生产环境)
当业务规模扩大至一定程度之后可能就需要构建高可用性的分布式存储架构了。此时可以通过编写YAML文件定义多个成员间的协作关系从而实现自动化部署流程。下面是一个简单的例子展示如何借助`docker-compose`完成这项工作[^4]:
编辑`docker-compose2.yml`文档内容如下所示:
```yaml
version: '2'
services:
es01:
image: elasticsearch:7.17.5
container_name: es01
environment:
- node.name=es01
...
es02:
image: elasticsearch:7.17.5
container_name: es02
depends_on:
- es01
environment:
- node.name=es02
...
es03:
image: elasticsearch:7.17.5
container_name: es03
depends_on:
- es02
environment:
- node.name=es03
...
kibana:
image: kibana:7.17.5
ports:
- "5601:5601"
links:
- es01
...
```
最后一步就是简单地调用`docker compose -f docker-compose2.yml up -d`指令让整个方案生效即可。
阅读全文