Docker中如何部署ElasticSearch+ElasticSearch-Head

这篇文章主要介绍了Docker中如何部署ElasticSearch+ElasticSearch-Head,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们提供的服务有:网站设计制作、做网站、微信公众号开发、网站优化、网站认证、二七ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的二七网站制作公司

 

一、Docker部署ElasticSearch

1、拉取es镜像:

[root@TrueDei ~]# docker pull elasticsearch:7.10.1
 

2、运行容器

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为truedei-es

[root@TrueDei ~]# 
[root@TrueDei ~]# docker images
REPOSITORY                TAG       IMAGE ID       CREATED         SIZE
elasticsearch             7.10.1    558380375f1a   3 weeks ago     774MB
hello-world               latest    bf756fb1ae65   12 months ago   13.3kB
centos/MySQL-57-centos7   latest    f83a2938370c   14 months ago   452MB
[root@TrueDei ~]# 
[root@TrueDei ~]# docker run -d --name truedei-es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1
ad6e6d2914272a131ce904e8d1ed9c5580e077c68464cd6cd8bbc00c353098e0
[root@TrueDei ~]# 
[root@TrueDei ~]# 
 

3、进入到es:

因为要对es进行配置,所以要进入到容器才可以

[root@TrueDei ~]# 
[root@TrueDei ~]# docker exec -it truedei-es /bin/bash
[root@ad6e6d291427 elasticsearch]#
 

4、进行配置

加入跨域配置

[root@TrueDei ~]# 
[root@TrueDei ~]# docker exec -it truedei-es /bin/bash
[root@ad6e6d291427 elasticsearch]# 
[root@ad6e6d291427 elasticsearch]# 
[root@ad6e6d291427 elasticsearch]# ls
LICENSE.txt  NOTICE.txt  README.asciidoc  bin  config  data  jdk  lib  logs  modules  plugins
[root@ad6e6d291427 elasticsearch]# 
[root@ad6e6d291427 elasticsearch]# 
[root@ad6e6d291427 elasticsearch]# cd config/
[root@ad6e6d291427 config]# 
[root@ad6e6d291427 config]# ls
elasticsearch.keystore  elasticsearch.yml  jvm.options  jvm.options.d  log4j2.properties  role_mapping.yml  roles.yml  users  users_roles
[root@ad6e6d291427 config]# 
[root@ad6e6d291427 config]#  
[root@ad6e6d291427 config]# vi elasticsearch.yml 
[root@ad6e6d291427 config]# 
[root@ad6e6d291427 config]# cat elasticsearch.yml 
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@ad6e6d291427 config]# 
 

5、退出重启es

[root@ad6e6d291427 config]# 
[root@ad6e6d291427 config]# exit
exit
[root@TrueDei ~]# 
[root@TrueDei ~]# docker restart truedei-es
truedei-es
[root@TrueDei ~]# 
[root@TrueDei ~]# 
 

6、查看是否启动成功

[root@TrueDei ~]# docker ps -a
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS                   PORTS                              NAMES
ad6e6d291427   elasticsearch:7.10.1      "/tini -- /usr/local…"   4 minutes ago   Up 27 seconds            0.0.0.0:9200->9200/tcp, 9300/tcp   truedei-es
 

Docker中如何部署ElasticSearch+ElasticSearch-Head


 

7、测试是否成功

浏览器输入:http://IP:9200

Docker中如何部署ElasticSearch+ElasticSearch-Head


 
 

二、Docker部署ElasticSearch-Head

为什么要安装ElasticSearch-Head呢,原因是需要有一个管理界面进行查看ElasticSearch相关信息

1、拉取镜像

[root@TrueDei ~]# docker pull mobz/elasticsearch-head:5
 

2、运行容器

[root@TrueDei ~]# 
[root@TrueDei ~]# docker run -d --name truedei-es-head -p 9100:9100 mobz/elasticsearch-head:5
2433913241a2504981088d8ec6c1cc10f7457c1d3abfdb99255e8b2111c81922
[root@TrueDei ~]# 
 

3、测试

浏览器访问:http://IP:9100
然后输入你ES服务的地址即可链接

Docker中如何部署ElasticSearch+ElasticSearch-Head


 

在创建索引的时候发现存在问题

Docker中如何部署ElasticSearch+ElasticSearch-Head


 

 解决办法以及步骤:  

进入ElasticSearch-Head中修改配置文件;

1、进入ElasticSearch-Head容器:

[root@TrueDei ~]# 
[root@TrueDei ~]# 
[root@TrueDei ~]# docker exec -it truedei-es-head /bin/bash
root@2433913241a2:/usr/src/app# 
root@2433913241a2:/usr/src/app# 
root@2433913241a2:/usr/src/app# 
root@2433913241a2:/usr/src/app# cd
root@2433913241a2:~# 
root@2433913241a2:~# 
root@2433913241a2:~# cd /usr/src/app/
root@2433913241a2:/usr/src/app# ll
bash: ll: command not found
root@2433913241a2:/usr/src/app# ls
Dockerfile    LICENCE         _site                               elasticsearch-head.sublime-workspace  index.html    package.json                  src
Gruntfile.js  README.textile  elasticsearch-head.sublime-project  grunt_fileSets.js                     node_modules  plugin-descriptor.properties  test
root@2433913241a2:/usr/src/app# 
root@2433913241a2:/usr/src/app# 
root@2433913241a2:/usr/src/app# cd _site/
root@2433913241a2:/usr/src/app/_site# 
root@2433913241a2:/usr/src/app/_site# vi vendor.js 
bash: vi: command not found
root@2433913241a2:/usr/src/app/_site# 
 

在编辑vendor.js的时候说vi编辑器不存在,那么就需要安装一下vim了:

apt-get update
apt-get install vim
 

1、进入head安装目录;

2、cd _site/

3、编辑vendor.js  共有两处

  1. 6886行 /contentType: "application/x-www-form-urlencoded

改成

contentType: "application/json;charset=UTF-8"

  1. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&

改成

var inspectData = s.contentType === "application/json;charset=UTF-8" &&

然后重启一下即可

此时创建索引也是OK的

Docker中如何部署ElasticSearch+ElasticSearch-Head


 

查询也ok了:

Docker中如何部署ElasticSearch+ElasticSearch-Head


 

感谢你能够认真阅读完这篇文章,希望小编分享的“Docker中如何部署ElasticSearch+ElasticSearch-Head”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻标题:Docker中如何部署ElasticSearch+ElasticSearch-Head
文章分享:http://myzitong.com/article/pehogd.html