docker+Elasticsearch8.6.0部署流程

Docker部署Elasticsearch 8.6.0流程

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” 报错
  1. 查询 ES 容器的 IP 地址(用于配置连接):
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' es容器ID
  1. 修改 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

四、参考文章

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值