1、首先拉取elasticsearch镜像
docker pull elasticsearch:7.9.1
2、创建docker挂载的目录
我这里将docker环境下挂在的目录统一放在了 /dockerdata目录下
mkdir -p /dockerdata/elasticsearch/config
mkdir -p /dockerdata/elasticsearch/data
mkdir -p /dockerdata/elasticsearch/plugins
3、修改配置文件
echo "http.host: 0.0.0.0" >> /dockerdata/elasticsearch/config/elasticsearch.yml
(可选)修改/dockerdata/elasticsearch
文件夹权限,保证可挂载性
chmod -R 777 /dockerdata/elasticsearch/
4、创建容器(必须事先安装Java环境)
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
-v /dockerdata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /dockerdata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /dockerdata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.1
-p
端口映射-e discovery.type=single-node
单点模式启动-e ES_JAVA_OPTS="-Xms84m -Xmx512m"
:设置启动占用的内存范围-v
目录挂载-d
后台运行
5、查看启动详情
docker ps # 查看是否启动
docker logs es # 启动日志查询(这里的es为容器名称或id,下同)
docker restart es # 重启
docker exec -it elasticsearch /bin/bash # 进入
docker update --restart=always es # 修改为开机自启动
6、访问xxx.xxx.xxx.xxx:9200
地址,出现如下信息则安装成功
7、拉取kibana镜像
docker pull kibana:7.9.1
8、安装kibana容器
- 建议将如下命令的
es
换成自己的ip地址:
docker run --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-d kibana:7.9.1
-e ELASTICSEARCH_HOSTS=http://es:9200
:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch,否则配置为自己的IP地址。
9、访问http://xx.xxx.xxx.57:5601/
查看界面
- kibana启动一般比较慢,需要多等待一会
10、安装IK分词器
- 在线安装
# 进入容器内部
docker exec -it es /bin/bash
# 在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip
#退出
exit
#重启容器
docker restart es
- 离线安装
下载地址
- 查看数据卷目录
docker inspect es | grep Mounts -A 20
- 结果显示
[
{
"CreatedAt": "2022-05-06T10:06:34+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/usr/share/elasticsearch/plugins/",
"Name": "/dockerdata/elasticsearch/plugins/",
"Options": null,
"Scope": "local"
}
]
- 解压zip包,重命名为analysis-ik,然后上传到数据卷
/usr/share/elasticsearch/plugins/
或/dockerdata/elasticsearch/plugins/
中
- 重启容器
docker restart es
# 查看日志
docker logs es
- 测试
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "程序员学习java太棒了"
}