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
7、测试是否成功
浏览器输入:http://IP:9200
二、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服务的地址即可链接
在创建索引的时候发现存在问题
解决办法以及步骤:
进入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 共有两处
6886行 /contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"
7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&
然后重启一下即可
此时创建索引也是OK的
查询也ok了:
感谢你能够认真阅读完这篇文章,希望小编分享的“Docker中如何部署ElasticSearch+ElasticSearch-Head”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
新闻标题:Docker中如何部署ElasticSearch+ElasticSearch-Head
文章分享:http://myzitong.com/article/pehogd.html