docker部署 elasticsearch问题和总结 及IK安装 head安装

本文详细介绍了在Docker环境下部署Elasticsearch时遇到的内存限制问题以及解决方法,如何使9300端口可访问,以及后续IK分词器和Head插件的安装步骤,帮助读者成功完成Elasticsearch的容器化部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先从国内下载elasticsearch镜像

docker pull registry.docker-cn.com/library/elasticsearch

2.启动docker
由于这里我使用的阿里云的轻量级学生服务器 内存只有2个g
这里我们必须指定elasticsearch的jvm内存大小才能启动成功,之前我没有注意到这个问题,多次启动都失败了,
设置jvm内存大小来启动elasticsearch命令如下:

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name elasticsearch 5acf0e8da90

这里的5acf0e8da90是我elasticsearch的镜像id 就是imagesid(写名字也可以)

3.启动成功后 只能访问9200 而访问不了9300
启动成功后 我telnet了9200、9300发现 9200可以访问,9300不能访问,是因为之前在本地调试,9200,9300都能访问,但是如果你要部署到服务器9300是访问不了的,因此下文为记录解决9300能访问的方法:

先执行

docker exec -it elasticsearch /bin/bash

进入 docker里面的elasticsearch容器

进入后 cd config 如下图所示

在这里插入图片描述

这里 修改config目录下的elasticserach.yml
执行

vim elasticsearch.yml

这里会报错 找不到vim命令 由于在容器里面是没有vim的命令的 这时候需要更新

apt-get update
apt-get install vim

下载完vim 后我们修改elasticsearch.yml的配置文件信息
在这里插入图片描述
将transport.host=0.0.0.0的注销去掉 然后保存退出

重启elasticsearch 容器

docker restart elasticsearch

注意 这里我们重启后 使用docker ps 看容器里的内容 elasticsearch会挂掉 这个时候就不是es的问题了 而是我们宿主机的配置没有调优

接下来我们进行宿主机的系统调优(如果调优过得话就不用了,也不会出现挂点的情况)

修改/etc/security/limit.conf,添加以下内容(软件 硬件允许打开最大文件个数)
* soft nofile 65535
* hard nofile 65535

修改/etc/sysctl.conf 添加以下内容 (限制一个进程可以拥有的VMA虚拟内存区域的数量)
vam.max_map_count=655360 

然后reboot 重启计算机

重启计算机之后 我们再docker restart elasticsearch
然后docker ps -a 观察 es状态 就不会再挂掉了
至此 docker 里部署elasticsearch完成

4.docker 安装ik
将我们配置好的本地的ik放入 docker容器里面的plugins文件夹

docker cp ik elasticsearch:/usr/share/elasticearch/plugins

再重启docker

5.docker安装head插件
在 docker 容器里 conf文件夹下 修改elasticsearch.yml 如下
在这里插入图片描述
docker pull elasticsearch-head
docker run -di --name elasticsearch-head -p 9100:9100 elasticsearch
从重启docker 访问加上9100就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值