一.环境
准备一台有docker环境的虚拟机,需要注意的是分配内存记得一定大于2G,因为ES需要的内存就至少要1G了
二.拉取镜像
进入docker hub查询自己需要的es版本
这里以安装7.6.0为例 右边有拉取镜像的指令,直接复制,在linux下执行即可拉取镜像
这里镜像已拉取完毕
三.容器运行ES
这里强烈建议按照docker hub的文档来启动,不然会遇到很多坑
先创建用户定义的网络(用于连接到连接到同一网络的其他服务(例如,Kibana))
这一步非常重要,不然kibana后面会一直连接不上es
docker run -it --net esnetwork --name elasticsearch -d -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.6.0
9300:ES节点之间的通讯使用
9200:ES节点和外部通讯使用
docker ps -a如果发现容器启动失败
docker logs elasticsearch查看日志 发现报错
问题1 elasticsearch用户拥有的内存权限太小,至少需要262144
vim /etc/sysctl.conf 加入
vm.max_map_count=655360 然后执行sysctl -p让系统重新加载vm.max_map_count参数
删除之前的容器再次重启
问题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
需要再容器启动命令上加入-e "discovery.type=single-node"
测试 浏览器访问http://192.168.56.101:9200/
四.安装Kibana
注意最好和ES版本一致 这里同样是7.6.0版本
下载容器后
运行kibana容器
docker run --net esnetwork --name kibana -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.6.0
这里要和上面的es处于一个自定义网络 不然会出现下面的情况
访问出错 查看日志
docker logs kibana
发现
docker exec -it kibana /bin/bash 进入交互模式
vi config/kibana.yml
发现host为http://elasticsearch:9200 更改为实际IP地址
然后重启kibana容器
访问http://192.168.56.101:5601 发现启动正常