目录
- 前言
- 安装elasticsearch-head
-
- 步骤1:准备
-
- [1. 安装docker](#1. 安装docker)
- [2. 搜索可以使用的镜像。](#2. 搜索可以使用的镜像。)
- [3. 也可从docker hub上搜索镜像。](#3. 也可从docker hub上搜索镜像。)
- [4. 选择合适的redis镜像。](#4. 选择合适的redis镜像。)
- 步骤2:拉取elasticsearch-head镜像
- 步骤3:创建容器
- 步骤4:启动容器
- 步骤5:检查是否安装成功
- [ElasticSearch-head 配置](#ElasticSearch-head 配置)
- [ElasticSearch-head 容器设置](#ElasticSearch-head 容器设置)
-
- [容器随 docker 自动启动](#容器随 docker 自动启动)
- 容器设置IP
- 其它
-
- [打开 elasticsearch-head](#打开 elasticsearch-head)
- 登录容器
- [从 docker 向宿主拷贝WorkingDir目录](#从 docker 向宿主拷贝WorkingDir目录)
- [从宿主向 docker 拷贝文件](#从宿主向 docker 拷贝文件)
- [406 错误](#406 错误)
- 参考
前言
- TencentOS Server 3.1
- Docker version 19.03.14, build 5eb3275d40
- ElasticSearch/ES 8.9.0
安装elasticsearch-head
步骤1:准备
1. 安装docker
安装 docker 参考:【Centos 8】【Centos 7】安装 docker
2. 搜索可以使用的镜像。
bash
shell> docker search mobz/elasticsearch-head
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mobz/elasticsearch-head elasticsearch-head front-end and standalone ... 95
3. 也可从docker hub上搜索镜像。
4. 选择合适的redis镜像。
版本 | 拉取命令 |
---|---|
5 | docker pull mobz/elasticsearch-head:5 |
步骤2:拉取elasticsearch-head镜像
拉取镜像
bash
shell> docker pull mobz/elasticsearch-head:5
5: Pulling from mobz/elasticsearch-head
75a822cd7888: Pull complete
57de64c72267: Pull complete
4306be1e8943: Pull complete
871436ab7225: Pull complete
0110c26a367a: Pull complete
1f04fe713f1b: Pull complete
723bac39028e: Pull complete
7d8cb47f1c60: Pull complete
7328dcf65c42: Pull complete
b451f2ccfb9a: Pull complete
304d5c28a4cf: Pull complete
4cf804850db1: Pull complete
Digest: sha256:55a3c82dd4ba776e304b09308411edd85de0dc9719f9d97a2f33baa320223f34
Status: Downloaded newer image for mobz/elasticsearch-head:5
docker.io/mobz/elasticsearch-head:5
查看已拉取的镜像
bash
shell> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 9c7a54a9a43c 3 months ago 13.3kB
nacos/nacos-server v2.2.1 faff56ad2ef5 4 months ago 1.17GB
redis 6.2.1 de974760ddb2 2 years ago 105MB
elasticsearch 7.12.0 9337ed510a0c 2 years ago 830MB
mysql 5.7.31 42cdba9f1b08 2 years ago 448MB
mobz/elasticsearch-head 5 b19a5c98e43b 6 years ago 824MB
步骤3:创建容器
创建容器方式1:快速创建容器
bash
shell> docker create --name elasticsearch-head1 -p 9100:9100 mobz/elasticsearch-head:5
步骤4:启动容器
shell> docker start elasticsearch-head1
步骤5:检查是否安装成功
浏览器打开 http://localhost:9100, 如果出现以下界面就是安装成功:
ElasticSearch-head 配置
工作目录/WorkingDir
"WorkingDir": "/usr/src/app"
ElasticSearch-head 容器设置
容器随 docker 自动启动
bash
shell> docker update --restart=always elasticsearch-head1
- 每次docker启动时,容器也会自动启动
容器设置IP
bash
shell> docker network connect --ip 172.19.0.2 mynetwork elasticsearch-head1
- docket ip : 172.19.0.2
其它
打开 elasticsearch-head
- http://localhost:9100
- http://localhost:9100/?base_uri=http://127.0.0.1:9200
- http://localhost:9100/?base_uri=http://127.0.0.1:9200\&auth_user=elastic\&auth_password=changeme
- http://localhost:9100/?base_uri=http%3A%2F%2F127.0.0.1:9200\&auth_user=elastic\&auth_password=changeme
登录容器
shell> docker exec -it elasticsearch-head1 /bin/bash
从 docker 向宿主拷贝WorkingDir目录
bash
shell> docker cp elasticsearch-head1:/usr/src/app ~/
从宿主向 docker 拷贝文件
bash
shell> docker cp ~/app/_site/vendor.js elasticsearch-head1:/usr/src/app/_site
406 错误
请求 ElasticSearch API 遇到 406 错误 :
{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
原因:elasticsearch 增加了内容类型检查,推荐使用Content-Type: application/json
解决方法:
-
从 docker 容器向宿主拷贝WorkingDir目录
-
修改_site/vendor.js。编辑vendor.js 共有两处
修改 6886行:
contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"修改 7573行:
var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" && -
将 vendor.js 拷贝到docker容器
-
重启容器
参考
https://blog.csdn.net/wangxilong1991/article/details/80618082
https://blog.csdn.net/biu_biu_duda/article/details/121982287