1、重新设置max_map_count,否则es启动不起来
查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
新设置max_map_count的值
sysctl -w vm.max_map_count=262144
2、下载镜像并运行
#拉取镜像docker pull elasticsearch:7.7.0#启动镜像docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0--name表示镜像启动后的容器名称-d: 后台运行容器,并返回容器ID;-e: 指定容器内的环境变量-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
3、访问浏览器ip:9200,如果出现以下界面就是安装成功;
4、安装elasticsearch-head
#拉取镜像docker pull mobz/elasticsearch-head:5#创建容器docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5#启动容器docker start elasticsearch-headordocker start 容器id (docker ps -a 查看容器id )
5、浏览器打开:http://ip:9100
6、当我们输入es连接地址后发现连接不上,是因为产生了跨域问题
修改docker中elasticsearch的elasticsearch.yml文件
docker exec -it elasticsearch /bin/bash (进不去使用容器id进入)vi config/elasticsearch.yml
在最下边添加两行
http.cors.enabled: truehttp.cors.allow-origin: "*"
然后退出重启服务
#复制vendor.js到外部docker cp 容器id:/usr/src/app/_site/vendor.js /usr/local/#修改vendor.jsvim vendor.js
7、ElasticSearch-head操作时不修改配置,默认会报406错误码
#复制vendor.js到外部docker cp 容器id:/usr/src/app/_site/vendor.js /usr/local/#修改vendor.jsvim vendor.js

修改完成后再复制回容器中
docker cp /usr/local/vendor.js 容器id:/usr/src/app/_site
重新启动elasticsearch-head
docker restart 容器id
最后就可以查到es中的数据了
8、安装ik分词器
这里采用离线安装
下载分词器压缩包
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
将分词器安装进容器中
#将压缩包移动到容器中docker cp /tmp/elasticsearch-analysis-ik-7.7.0.zip elasticsearch:/usr/share/elasticsearch/plugins#进入容器docker exec -it elasticsearch /bin/bash#创建目录mkdir /usr/share/elasticsearch/plugins/ik#将文件压缩包移动到ik中mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.7.0.zip /usr/share/elasticsearch/plugins/ik#进入目录cd /usr/share/elasticsearch/plugins/ik#解压unzip elasticsearch-analysis-ik-7.7.0.zip#删除压缩包rm -rf elasticsearch-analysis-ik-7.7.0.zip
然后退出重启镜像
exitdocker restart elasticsearch
9、安装kibana
docker run --name kibana -p 5601:5601 --link elasticsearch:es -e “elasticsearch.hosts=http://81.70.100.11:9200” -d kibana:7.7.0
如果访问ip:5601出了问题,则检查配置:
docker exec -it /bin/bash
vi config/kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://es_ip:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
docker restart kibana
10、elasticsearch开启xpack监控功能
curl -H "Content-Type: application/json" -XPUT http://localhost:9200/_cluster/settings -d '{
"persistent" : {
"xpack" : {
"monitoring" : {
"collection" : {
"enabled" : "true"
}
}
}
}
}'

