docker pull elasticsearch:7.6.2
docker images
docker network create esnet
docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -p 9200:9200 -p 9300:9300 \
--name search elasticsearch:7.6.2
docker ps
若出现: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
docker exec -it search /bin/bash
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/
docker stop search
docker rm search
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
首先进入到容器中,然后进入到指定目录修改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
docker exec -it search /bin/bash
cd bin
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
docker pull kibana:7.6.2
docker run --name kibana -p 5601:5601 --network=esnet -d kibana:7.6.2
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!