docker+Elasticsearch8.6.0部署流程
一、安装 Elasticsearch
1.1 创建网络
首先需要为 Elasticsearch 及后续组件创建一个专属网络,确保它们之间可以正常通信:
docker network create es-net
1.2 安装镜像
步骤 1:拉取 Elasticsearch 镜像
docker pull elasticsearch:8.6.0
步骤 2:创建挂载点目录
为了方便数据持久化和配置修改,创建本地挂载目录:
mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
步骤 3:赋予目录权限
确保容器对挂载目录有读写权限:
chmod 777 /usr/local/es/data
chmod 777 /usr/local/es/config
chmod 777 /usr/local/es/plugins
步骤 4:临时运行容器
先临时启动容器:
docker run -d \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0
步骤 5:复制容器内文件到宿主机
# 复制数据目录
docker cp es:/usr/share/elasticsearch/data /usr/local/es/
# 复制配置目录
docker cp es:/usr/share/elasticsearch/config /usr/local/es/
# 复制插件目录
docker cp es:/usr/share/elasticsearch/plugins /usr/local/es/
步骤 6:停止并删除临时容器
#停止容器
docker stop es
#删除容器
docker rm es
1.3 部署单点 ES 并创建容器
使用挂载目录重新创建容器,实现数据持久化和配置共享:
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/config:/usr/share/elasticsearch/config \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0
1.4 进入 ES 容器并设置密码
步骤 1:进入容器内部
docker exec -it es /bin/bash
步骤 2:设置访问密码
运行以下命令,按照提示为各类用户设置密码(默认使用 elastic 用户作为管理员):
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
步骤 3:修改配置文件
编辑宿主机上的 elasticsearch.yml 配置文件(路径:/usr/local/es/config/elasticsearch.yml),添加或修改以下内容:
cluster.name: "docker-cluster-01"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
1.5 访问 Elasticsearch
-
访问地址:
http://虚拟机IP:9200 -
登录账号:
elastic(默认管理员账号) -
密码:前面步骤中设置的密码
设置容器自启动(若未设置)
docker update --restart=always es
二、安装 Kibana
2.1 安装镜像
步骤 1:拉取 Kibana 镜像(版本需与 ES 一致)
docker pull kibana:8.6.0
步骤 2:创建挂载点目录
mkdir -p /usr/local/kibana/config /usr/local/kibana/data
步骤 3:赋予目录权限
chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config
步骤 4:临时运行容器
docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0
步骤 5:复制容器内文件到宿主机
# 复制数据目录
docker cp kibana:/usr/share/kibana/data /usr/local/kibana
# 复制配置目录
docker cp kibana:/usr/share/kibana/config /usr/local/kibana
步骤 6:停止并删除临时容器
#停止容器
docker stop kibana
#删除容器
docker rm kibana
2.2 部署 Kibana 并创建容器
docker run -d \
--restart=always \
--name kibana \
--network es-net \
-v /usr/local/kibana/config:/usr/share/kibana/config \
-v /usr/local/kibana/data:/usr/share/kibana/data \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://localhost:9200 \
kibana:8.6.0
2.3 访问 Kibana 及配置
-
访问地址:
http://虚拟机IP:5601 -
登录账号:
elastic -
密码:前面步骤中设置的密码
解决 “Kibana server is not ready yet” 报错
- 查询 ES 容器的 IP 地址(用于配置连接):
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' es容器ID
- 修改 Kibana 配置文件(路径:
/usr/local/kibana/config/kibana.yml):
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
# <ES容器IP>:替换为实际的ES容器IP
elasticsearch.hosts: [ "http://<ES容器IP>:9200" ]
elasticsearch.username: "kibana_system"
# <密码>:替换为前面设置的密码
elasticsearch.password: "<密码>"
monitoring.ui.container.elasticsearch.enabled: true
# 这里配置中文显示,默认为英文 【English - en (default)、Chinese - zh-CN、Japanese - ja-JP】
i18n.locale: "zh-CN"
三、安装 IK 分词器
IK 分词器用于支持中文分词,版本需与 Elasticsearch 一致:
步骤 1:进入 Elasticsearch 容器
docker exec -it es /bin/bash
步骤 2:在线安装 IK 分词器
./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.6.0
安装完成后,重启 Elasticsearch 容器使插件生效:
docker restart es
Docker部署Elasticsearch 8.6.0流程
699

被折叠的 条评论
为什么被折叠?



