docker中安装elasticsearch及配套工具

480 阅读3分钟

1. 创建网络

因为需要部署kibana容器,因此需要让es和kibana容器互联。

docker network create es-net

结果

(base) ➜  ~ docker network create es-net
8c1441aa54060c5318bdcb40683735fcaec1022dc8daa3523f8814f829378e53

2. 拉取elasticsearch镜像

Docker Hub查询最新(或者想要的镜像)版本

拉取es镜像

  • es镜像最新版本8.10.2,但是安装ik分词器时错误
  • 查看ik分词器,最新版本为8.9.0,因为ik分词器需要跟es版本对应,所以拉取8.9.0版本的es
docker pull elasticsearch:8.9.0
  • 使用docker pull elasticsearch会报manifest for elasticsearch:latest not found: manifest unknown: manifest unknown,必须指定版本 结果
(base) ➜  ~ docker pull elasticsearch:8.9.0
8.10.2: Pulling from library/elasticsearch
edab87ea811e: Pull complete
47f8802f612d: Pull complete
fc0343a1851d: Pull complete
4f4fb700ef54: Pull complete
32130303ef74: Pull complete
eb37481f72ca: Pull complete
4a6f3de1727f: Pull complete
bd1d7e976113: Pull complete
e863819dd2a3: Pull complete
eabbd90021b4: Pull complete
Digest: sha256:53efb4ba72e1c71c8223ee8d8de6537e8d992ad6cc8fcdf5dd944be93b6ab814
Status: Downloaded newer image for elasticsearch:8.9.0
docker.io/library/elasticsearch:8.9.0

3. 创建挂载目录

mkdir -p ~/mydata/es/data ~/mydata/es/config ~/mydata/es/plugins

chmod 777 ~/mydata/es/data
chmod 777 ~/mydata/es/config
chmod 777 ~/mydata/es/plugins

4. 部署单点es,创建es容器

docker run -d --restart=always --name es  --network es-net -p 9200:9200 -p 9300:9300 --privileged -v ~/mydata/es/data:/usr/share/elasticsearch/data -v ~/mydata/es/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch:8.9.0
  • 容器名为es
  • 将data,plugins目录挂载出来

进入es容器,修改es配置

# 进入es容器
docker exec es -it /bin/bash

# 跳转到config目录下
cd config

# 关闭密码安全验证
echo 'xpack.security.enabled: false' >> elasticsearch.yml


# 退出容器
exit

# 重启es容器
docker restart es

浏览器访问es

http://127.0.0.1:9200/

5. 基于Docker安装Kibana

docker pull kibana:8.10.2

6. 创建kibana挂载目录

mkdir -p ~/mydata/kibana/data ~/mydata/kibana/config 
chmod 777 ~/mydata/kibana/data
chmod 777 ~/mydata/kibana/config

7. 部署kibana,创建kibana容器

docker run -d --restart=always --name kibana --network es-net -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 kibana:8.9.0

浏览器访问kibana

http://127.0.0.1:5601/

8. 安装IK分词器

#进入es容器内部
docker exec -it es /bin/bash

# 安装ik分词器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.9.0.zip
  • github-ik查看最新版本 安装成功信息
elasticsearch@fdc0a2c94f3c:~$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.9.0.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.9.0.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.9.0.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
-> Please restart Elasticsearch to activate any plugins installed