簡介
本博客將講解如何在 Docker 和 Docker-Compose 中運行 Elasticsearch,并掛載 IK 分詞器。
步驟
一、快速運行Elasticsearch:8.1.3
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
二、Docker 給運行的Elasticsearch Docker容器掛載 IK 分詞器
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
三、Docker-Compose 給運行的Elasticsearch Docker容器掛載 IK 分詞器
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.3container_name: es01environment:- ES_JAVA_OPTS=-Xms1g -Xmx1gvolumes:- ./config:/usr/share/elasticsearch/config- ./plugins:/usr/share/elasticsearch/plugins- ./data:/usr/share/elasticsearch/dataports:- 9200:9200- 9300:9300networks:- 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 分詞器提供中文分詞能力。希望這篇博文可以讓你更好地理解這些工具與技術如何協同工作。