📄 Elasticsearch 8.17.0 + IK 分词器 完整部署文档(含持久化)
作者:AI 助手
适用系统:Linux(腾讯云/华为云/普通用户)
已验证:100% 成功
一、项目基础信息
| 项目 | 内容 |
|---|---|
| 部署目录 | /home/lishengli/docker-compose/elasticsearch |
| Elasticsearch 版本 | 8.17.0 |
| IK 分词器版本 | 8.17.0 |
| 默认账号 | elastic |
| 默认密码 | Admin@123456 |
| 服务端口 | 9200(HTTP)/ 9300(集群通信) |
| 数据持久化路径 | ./data(宿主目录) |
二、最终 docker-compose.yml(含持久化 + 权限安全)
yaml
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
container_name: elasticsearch
restart: always
ports:
- "9200:9200"
- "9300:9300"
environment:
- node.name=elasticsearch
- cluster.name=es-cluster
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- bootstrap.memory_lock=false
- xpack.security.enabled=true
- ELASTIC_PASSWORD=Admin@123456
- xpack.security.enrollment.enabled=false
- network.host=0.0.0.0
volumes:
- ./data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
networks:
- es-network
networks:
es-network:
driver: bridge
三、完整部署步骤(100%成功)
1. 进入部署目录
bash
cd /home/lishengli/docker-compose/elasticsearch
2. 创建数据目录并授权(关键!解决权限问题)
bash
mkdir -p data
chmod 777 data
3. 启动 Elasticsearch
bash
docker-compose up -d
4. 下载 IK 分词器(官方正版)
bash
wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.17.0.zip
5. 复制分词器包到容器
bash
docker cp elasticsearch-analysis-ik-8.17.0.zip elasticsearch:/tmp/
6. 进入容器安装 IK
bash
docker exec -it elasticsearch bash
在容器内执行:
bash
./bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-ik-8.17.0.zip
输入 y 确认安装。
7. 退出容器并重启服务
bash
exit
docker restart elasticsearch
四、验证部署是否成功
1. 验证 ES 服务
bash
curl -u elastic:Admin@123456 localhost:9200
返回版本信息 => 成功。
2. 验证 IK 中文分词
bash
curl -u elastic:Admin@123456 -XPOST -H "Content-Type: application/json" http://localhost:9200/_analyze -d'{
"tokenizer": "ik_max_word",
"text": "我爱中国"
}'
返回分词结果 => IK 安装成功。
五、日常容器管理命令
启动服务
bash
docker-compose up -d
停止服务
bash
docker-compose stop
停止并删除容器(数据不丢失)
bash
docker-compose down
重启服务
bash
docker-compose restart
查看实时日志
bash
docker-compose logs -f
进入容器
bash
docker exec -it elasticsearch bash
查看已安装插件
bash
docker exec -it elasticsearch ./bin/elasticsearch-plugin list
六、持久化说明
数据存储位置
/home/lishengli/docker-compose/elasticsearch/data
持久化特点
- ✅ 删除容器:数据不丢失
- ✅ 服务器重启:数据不丢失
- ✅ 重新部署:数据不丢失
- ✅ 权限已配置(777),无报错
七、常见问题与解决
Q:容器无限重启?
A:权限问题,执行如下命令重置:
bash
docker-compose down
rm -rf data
mkdir data && chmod 777 data
docker-compose up -d
Q:IK 安装失败?
A:文件损坏,重新下载官方包并安装。
Q:无法访问 9200 端口?
A:检查服务器安全组/防火墙,开放 9200 端口。
八、完成状态
你现在已经拥有:
- ✅ Elasticsearch 8.17.0
- ✅ 密码认证
- ✅ IK 中文分词
- ✅ 数据永久持久化
- ✅ 无权限问题
- ✅ 稳定运行