拉取es-head镜像,启动

docker pull mobz/elasticsearch-head:5
docker run -itd --name es-head -p 9100:9100 mobz/elasticsearch-head:5

使用上面的镜像启动会有Content-Type header请求头错误的问题,可以进入容器中修改js文件,文章最后有提及,也可编写dockerfile重做镜像,避免重启后修改失效的问题 dockerfile

FROM mobz/elasticsearch-head:5
ADD vendor.js /usr/src/app/_site/vendor.js

下载vendor.js文件,与dockerfile放于同一路径 链接:https://pan.baidu.com/s/1lubHwiMXaXK6WjKrVol1Xg 提取码:833j

构建镜像,启动

docker build -t  es-head:v1 .

docker run -itd --name es-head -p 9100:9100 es-head:v1

es-head 连接设置密码的elasticsearch 先修改配置,在elasticsearch.yml文件中加入以下配置

#配置开启跨域
http.cors.enabled: true
#配置允许任何域名访问
http.cors.allow-origin: "*"
#设置密码后的访问配置
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

访问es-head的url要变动 原来是http://IP:9100 现在因为加密了,所以要做身份验证,格式:http://IP:9100/?auth_user=用户名&auth_password=密码通过该url访问es-head,然后注正常填写es的地址即可

Content-Type header请求头错误解决 数据浏览看不到任何数据,且查看数据请求报错,错误情况如下:

{ error:"Content-Type header [application/x-www-form-urlencoded] is not supported",status:406 }

解决方法: docker exec -it es-head /bin/bash进入es_head插件安装目录终端 编辑/usr/src/app/_site/vendor.js修改共有两处:

1. 6886行 /contentType: "application/x-www-form-urlencoded 
    改成 contentType: "application/json;charset=UTF-8" 
2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 
    改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&