本博客将讲解如何在 Docker 和 Docker-Compose 中运行 Elasticsearch,并挂载 IK 分词器。
1.首先,我们需要创建一个新的 Docker 网络:"elastic"。这个网络会提供给我们接下来所要创建的 Docker 容器之间共享。运行命令:
docker network create elastic
2.然后,从 docker.elastic.co 拉取名为 elasticsearch 的 Docker 镜像,版本为 8.1.3。运行命令:
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.1.3
3.运行刚刚拉取的 Elasticsearch Docker 镜像,并创建一个 Docker 容器:
docker run --name es01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.1.3
1.获取正在运行的 Elasticsearch Docker 容器内 config、data、plugins 的路径,运行命令:
docker ps
docker exec -it es01 /bin/bash
cd config && pwd
cd data && pwd
cd plugins && pwd
2.止并删除 es01 容器:
exit
docker stop es01
docker rm es01
3.创建目录结构并复制相关文件:
mkdir -p /opt/es8/docker-compose
docker cp es01:/usr/share/elasticsearch/config /opt/es8/docker-compose
docker cp es01:/usr/share/elasticsearch/data /opt/es8/docker-compose
docker cp es01:/usr/share/elasticsearch/plugins /opt/es8/docker-compose
4.在 "/opt/es8/docker-compose/plugins" 创建一个名为 "ik" 的文件夹:
mkdir -p /opt/es8/docker-compose/plugins/ik
cd /opt/es8/docker-compose/plugins/ik
5.下载并解压 8.1.3 分词器,并删除安装包:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.3/elasticsearch-analysis-ik-8.1.3.zip
unzip elasticsearch-analysis-ik-8.1.3.zip
rm -Rf elasticsearch-analysis-ik-8.1.3.zip
6.重新启动 Elasticsearch docker 容器:
docker run -d --name es01 --net elastic -p 9200:9200 -p 9300:9300 -v /opt/es8/docker-compose/config:/usr/share/elasticsearch/config -v /opt/es8/docker-compose/plugins:/usr/share/elasticsearch/plugins -v /opt/es8/docker-compose/data:/usr/share/elasticsearch/data -it docker.elastic.co/elasticsearch/elasticsearch:8.1.3
7.进入 Elasticsearch 容器,验证 IK 分词器是否安装成功:
docker ps
docker exec -it es01 /bin/bash
cd /bin
./elasticsearch-plugin list
1.在"/opt/es8/docker-compose" 创建 "docker-compose.yml" 文件:
cd /opt/es8/docker-compose
touch docker-compose.yml
2.注意在 "docker-compose.yml" 文件中添加以下参数:
version: '0.1'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.1.3
container_name: es01
environment:
- ES_JAVA_OPTS=-Xms1g -Xmx1g
volumes:
- ./config:/usr/share/elasticsearch/config
- ./plugins:/usr/share/elasticsearch/plugins
- ./data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- elastic
networks:
elastic:
3.运行 "docker-compose.yml" 文件:
docker compose up
4.看当前正在运行的 Elasticsearch Docker 容器。
docker ps
至此,我们已经在 Docker 和 Docker-Compose 中成功运行了 Elasticsearch 并挂载了 IK 分词器。
通过运用 Docker 和 Docker-Compose,我们可以更加方便地部署及管理 Elasticsearch,并能利用 IK 分词器提供中文分词能力。希望这篇博文可以让你更好地理解这些工具与技术如何协同工作。