前提:es、ik、kibana , 版本需一致,我这里都是7.10.1
拉取es镜像
docker pull elasticsearch:7.10.1
创建文件夹
mkdir -p /docker/elasticsearch/config
mkdir -p /docker/elasticsearch/data
mkdir -p /docker/elasticsearch/plugins
sudo chmod -R 777 /docker/elasticsearch/config
sudo chmod -R 777 /docker/elasticsearch/data
sudo chmod -R 777 /docker/elasticsearch/plugins
启动镜像
#copy docker文件到宿主机
docker cp 'es容器id':/usr/share/elasticsearch/config/elasticsearch.yml /docker/elasticsearch/config/elasticsearch.yml
# 启动 挂载config目录
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
-v /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.10.1
#-p 端口映射
#-e discovery.type=single-node 单点模式启动
#-e ES_JAVA_OPTS="-Xms84m -Xmx512m":设置启动占用的内存范围
#-v 目录挂载
#-d 后台运行
#同事推荐的启动命令
docker run \
-d \
-p 9200:9200 \
-p 9300:9300 \
-v /docker/elasticsearch/data:/usr/share/elasticsearch/data \
-e "discovery.type=single-node" \
-e "http.cors.enabled=true" \
-e "http.cors.allow-origin=*" \
-e "http.cors.allow-headers=*" \
-e "http.cors.allow-credentials=true" \
--name elasticsearch \
--restart always \
--memory 1G \
--memory-swap -1 \
elasticsearch:7.11.2
测试
curl http://localhost:9200
安装ik分词器
#宿主机创建插件目录
mkdir -p /docker/elasticsearch/plugins/ik
cd /docker/elasticsearch/plugins
#下载插件
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip
#复制到 /docker/elasticsearch/plugins/ik 目录下 解压
cp elasticsearch-analysis-ik-7.10.1.zip ik
cd ik
unzip elasticsearch-analysis-ik-7.10.1.zip
rm -rf elasticsearch-analysis-ik-7.10.1.zip
#copy 宿主机文件到docker
#docker cp /docker/elasticsearch/plugins/ik 'es容器id':/usr/share/elasticsearch/plugins/ik
#重启es
docker restart 'es容器id'
安装kibana
docker pull kibana:7.10.1
docker run \
-d \
-p 5601:5601 \
--name kibana \
--restart always \
--link elasticsearch \
kibana:7.10.1
页面访问 http://192.168.171.134:5601/
测试ik分词器
GET _analyze
{
"analyzer": "default",
"text": ["中文分词语"]
}
GET _analyze
{
"analyzer": "ik_smart",
"text": ["中国"]
}
PUT /index/_create/1
{"content":"美国澳大利亚是个烂摊子吗"}
POST /index/_create/2
{"content":"公安部:主人校车将享最高路权"}
POST /index/_create/3
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
POST /index/_create/4
{"content":"中国驻洛杉矶领事馆遭亚裔犯罪嫌疑犯自首"}
POST /index/_search
{
"query" : { "match" : { "content" : "中国" }}
}
DELETE /index