docker安装es

发布时间 2024-01-10 16:33:06作者: 小白十一

Es安装

拉取es

docker pull elasticsearch:6.6.1

 

 

 

 

启动

docker run -p 9200:9200 -p 9300:9300 --name es6.6 \
-e "discovery.type=gold-application" \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
-d elasticsearch:6.6.1

进入容器

docker exec -it es6.6 /bin/bash

进入conf 修改配置文件yml

 

 

启动命令参数介绍

# -e "discovery.type=single-node" \  单节点集群
# -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \ 制定运行参数,不然如果机器内存太小,启动后会非常卡顿

进入容器

docker exec -it es7.8 /bin/bash

 

查看容器文件权限不是修改下

[root@87e29ba6ef1e elasticsearch]# ll
total 588
-rw-r--r--  1 elasticsearch root  13675 Jun 14 19:34 LICENSE.txt
-rw-r--r--  1 elasticsearch root 544318 Jun 14 19:37 NOTICE.txt
-rw-r--r--  1 elasticsearch root   8165 Jun 14 19:34 README.asciidoc
drwxr-xr-x  2 elasticsearch root   4096 Jun 14 19:39 bin
drwxrwxr-x  1 elasticsearch root   4096 Jul  9 04:31 config #775权限
drwxrwxr-x  3 root          root   4096 Jul  9 04:29 data #775权限
drwxr-xr-x  1 elasticsearch root   4096 Jun 14 19:38 jdk
drwxr-xr-x  3 elasticsearch root   4096 Jun 14 19:38 lib
drwxrwxr-x  1 elasticsearch root   4096 Jul  9 04:31 logs #775权限
drwxr-xr-x 47 elasticsearch root   4096 Jun 14 19:39 modules
drwxr-xr-x  2 root          root   4096 Jul  9 04:17 plugins #775权限

 

 

挂载本地

创建目标文件夹

mkdir -p /root/elasticsearch/plugins;
mkdir -p /root/elasticsearch/data;
mkdir -p /root/elasticsearch/logs;
mkdir -p /root/elasticsearch/config;
# 做映射之前赋予文件夹相应权限,默认创建的文件夹权限就是755,所 以/dockerfile/elasticsearch/plugins不用改权限
chmod -R 775 /root/elasticsearch/data;
chmod -R 775 /root/elasticsearch/logs;
chmod -R 775 /root/elasticsearch/config;
# datalogs文件夹刚开始是空的,数据是启动时自己加进去的,所以可以做映射,
# plugins文件夹刚开始是没有安装插件的,也是空的,所以也可以做映射
# config文件夹是配置文件,不能用空目录做映射,否则启动直接退出,除非自己创建的文件夹中有相关配置文件
# 可以先进入容器,讲config文件夹拷贝出来,得到一份配置文件
docker cp es7.8:/usr/share/elasticsearch/config /root/elasticsearch;

 

 

重新启动

 

docker run -p 9200:9200 -p 9300:9300 --name es7.8 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
-v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /root/elasticsearch/data:/usr/share/elasticsearch/data \
-v /root/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /root/elasticsearch/config:/usr/share/elasticsearch/config \
-d elasticsearch:7.8.0

 

然后访问9200查看状态

 

ES启动报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 

1、启动容器 elasticsearch

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name m-es 6adeafaff184                                                                         

 

2、查看容器运行情况,容器未启动成功

[root@localhost ~]# docker ps -a

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                       PORTS                    NAMES

aa9d265fd652        6adeafaff184          "/bin/tini -- /usr..."   14 minutes ago      Exited (78) 13 minutes ago                            m-es

3、查看容器启动日志

[root@localhost ~]# docker logs m-es

报错提示:

1)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

2)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

 

4、解决方案

1) 修改参数 vm.max_map_count

[root@localhost ~]# sysctl -a|grep vm.max_map_count

vm.max_map_count = 65530

[root@localhost ~]# sysctl -w vm.max_map_count=262144

vm.max_map_count = 262144

[root@localhost ~]# sysctl -a|grep vm.max_map_count

vm.max_map_count = 262144

2)如果重启虚拟机 1)失效则在 /etc/sysctl.conf文件最后添加一行(永久修改)

vm.max_map_count=262144