安装elasticsearch
拉取镜像
docker pull elasticsearch:7.6.1
运行容器
- 运行命令创建启动容器:
docker run -d --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" elasticsearch:7.6.1
discovery.type=single-node:单机学习直接添加该参数,表示单节点运行,避免启动的时候es的引导检查会报错
- 将配置文件、数据目录拷出来做挂载:
docker cp es:/usr/share/elasticsearch/config /usr/local/docker/elasticsearch/
docker cp es:/usr/share/elasticsearch/data/ /usr/local/docker/elasticsearch/
- 设置允许跨域访问,否则后面安装elasticsearch-head连接不上
#进入配置文件目录
cd /usr/local/docker/elasticsearch/config
#修改elasticsearch.yml
vim elasticsearch.yml
#添加这2行
http.cors.enabled: true
http.cors.allow-origin: "*"
- 销毁容器,重新以挂载方式运行:
#销毁
docker rm -f es
#挂载配置文件
docker run -d --name es -p 9200:9200 -p 9300:9300 \
-v /usr/local/docker/elasticsearch/config/:/usr/share/elasticsearch/config/ \
-v /usr/local/docker/elasticsearch/data/:/usr/share/elasticsearch/data/ \
-e "discovery.type=single-node" \
elasticsearch:7.6.1
安装elasticsearch-head
拉取镜像
docker pull mobz/elasticsearch-head:5
运行容器
docker run -d --name es-head -p 9100:9100 \
mobz/elasticsearch-head:5
打开浏览器9100地址,默认连接的是localhost:9200,如果es装在其他服务器,把localhost换成对应的IP即可,但是这样每次都要修改IP,可以采用如下方式设置。
拷出容器的app.js、vendor.js,待会有用
docker cp es-head:/usr/src/app/_site/app.js /usr/local/docker/elasticsearch-head/
docker cp es-head:/usr/src/app/_site/vendor.js /usr/local/docker/elasticsearch-head/
- 修改app.js
把默认连接地址localhost改成对应的IP
cd /usr/local/docker/elasticsearch-head/
vim app.js
- 修改vendor.js(es-head 5和高版本es不兼容,查询会报HTTP 406状态码错误,这边修改下contentType即可解决)
#搜索application/x-www-form-urlencoded,改成application/json;charset=UTF-8
#总的有2个地方
vim vendor.js
- 销毁容器重新运行
# 销毁容器
docker rm -f es-head
#重新运行容器
docker run -d --name es-head -p 9100:9100 \
-v /usr/local/docker/elasticsearch-head/app.js:/usr/src/app/_site/app.js \
-v /usr/local/docker/elasticsearch-head/vendor.js:/usr/src/app/_site/vendor.js \
mobz/elasticsearch-head:5
直接在docker安装vim工具,对js编辑也可以,我这边网络问题装不上,所以采用挂载
- 打开elasticsearch-head,此时默认连接就是修改后的IP地址
- 到这步就基本安装完毕
- 安装kibana7.6.1的参考这篇博客:docker安装kibana7.6.1