【Linux】Centos7基于docker容器下安装elasticsearch以及可能遇到的错误

因为ElasticSearch是java开发的 所以我们要先安装java环境

安装jdk环境https://www.cnblogs.com/donleo123/p/14131743.html

一、安装

1、搜索镜像,拉取下载

docker search elasticsearch

选择版本号

docker pull elasticsearch:7.10.1

2、启动容器

docker run  -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200  -p 9300:9300   --name 容器名 容器id

参数说明:

-e ES_JAVA_OPTS="-Xms256m -Xmx256m"  //配置虚拟机内存参数
-d     //后台运行
-p    //端口映射
--name   //设置名字

3、在浏览器输入地址http://ip:9200/  ,如果出现以下页面表示安装成功

二、安装过程中可能遇到的问题:

1、elasticsearch在服务器启动后过一段时间会自动关闭

查找文件jvm.options文件

find / -name jvm.options

编辑文件

vi 文件地址

修改参数,默认是-Xms1g和-Xmx1g,把内存分配小点

-Xms256m
-Xmx256m

2、再次启动报max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

查看启动日志:

docker logs -f 容器id

解决:

切换到root用户

执行命令:

sysctl -w vm.max_map_count=262144

查看结果:

sysctl -a|grep vm.max_map_count

显示:

vm.max_map_count = 262144

上述方法修改之后,如果重启虚拟机将失效,所以:

解决办法:

在   /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

即可永久修改

3、启动报错:ERROR: [1] bootstrap checks failed

[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决方案:

elasticsearchconfig目录下,修改elasticsearch.yml配置文件,将下面的配置加入到该配置文件中:

cluster.initial_master_nodes: ["node-1"]

ip替换host1等,多节点请添加多个ip地址,单节点可写按默认来
#配置以下三者,最少其一
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
cluster.initial_master_nodes: ["node-1"] #这里的node-1为node-name配置的值

 这是我的elasticsearch.yml配置:

cluster.name: myes
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
cluster.initial_master_nodes: ["node-1"]

附:重新启动容器先rm容器后再次启动

作者:donleo123
本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
原文地址:https://www.cnblogs.com/donleo123/p/14133535.html