Docker搭建最新版7.6.2 Elasticsearch

Elasticsearch

1.docker安装elasticsearch

1.1.docker镜像下载

docker pull elasticsearch:7.6.2

1.2.查看镜像

docker images

1.3.创建网络

docker network create esnet

1.3.启动

docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -p 9200:9200 -p 9300:9300 \
--name search elasticsearch:7.6.2

1.4.查看是否启动

docker ps

1.5.启动异常解决方法

若出现:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;

解决:

切换到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

即可永久修改

重新启动依然报错: ERROR: [1] bootstrap checks failed
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

解决方案如下:

docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" \
-p 9200:9200 -p 9300:9300 --name search elasticsearch:7.6.2

1.6.进入容器

docker exec -it search /bin/bash

1.7.copy容器中的文件,到宿主机上

  • 先退出容器:exit
  • 查询容器id:docker ps
  • 执行拷贝命令:
docker cp cb26ab3e61e7:/usr/share/elasticsearch/config/ /home/elasticsearch/
docker cp cb26ab3e61e7:/usr/share/elasticsearch/data/ /home/elasticsearch/
docker cp cb26ab3e61e7:/usr/share/elasticsearch/logs/ /home/elasticsearch/
docker cp cb26ab3e61e7:/usr/share/elasticsearch/plugins/ /home/elasticsearch/

1.8.停止并删除容器

docker stop search
docker rm search

1.9.重新启动elsaticsearch容器

docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" \
-v /home/elasticsearch/:/usr/share/elasticsearch/config/ \
-v /home/elasticsearch/data/:/usr/share/elasticsearch/data/ \
-v /home/elasticsearch/logs/:/usr/share/elasticsearch/logs/ \
-v /home/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/ \
--network=esnet \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
--restart=always  -p 9200:9200 -p 9300:9300 --name search elasticsearch:7.6.2

1.10.修改配置,解决跨域访问问题

首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件

docker exec -it search /bin/bash
cd /usr/share/elasticsearch/config/
vi elasticsearch.yml

在elasticsearch.yml的文件末尾加上:

http.cors.enabled: true
http.cors.allow-origin: "*"

修改配置后重启容器即可。

docker restart search

2.安装 IK 分词器

  • 进入到容器内部安装插件
docker exec -it search /bin/bash
  • 进入bin目录
cd bin
  • 执行命令
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
  • 成功标志:-> Installed analysis-ik
  • 退出容器:exit
  • 重启容器:docker restart search

3.安装kibana

3.1.拉取镜像

docker pull kibana:7.6.2

3.2.启动容器

docker run --name kibana -p 5601:5601 --network=esnet -d kibana:7.6.2

3.3.配置kibana.yml

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://search:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

单机版搭建over!

你可能感兴趣的:(docker)