docker安装elasticsearch踩到的坑
简述elasticsearch是一款很好用的搜索服务器,全文检索靠它比直接在数据库中查来的快,然而纯天然安装elasticsearch也是要修改配置文件的,博主比较懒,所以选择了docker来安装,开箱即用就是爽。步骤1、拉取下载镜像docker pull elasticsearch(失败)小插曲:不知道为何想用docker pull elasticsearch拉取最新的镜像,一直是...
简述
elasticsearch是一款很好用的搜索服务器,全文检索靠它比直接在数据库中查来的快,然而纯天然安装elasticsearch也是要修改配置文件的,博主比较懒,所以选择了docker来安装,开箱即用就是爽。
步骤
1、拉取下载镜像
docker pull elasticsearch(失败)
小插曲:
不知道为何想用docker pull elasticsearch拉取最新的镜像,一直是报错
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(Client.Timeout exceeded while awaiting headers)
我还以为是我镜像源的问题,但是拉取其他镜像都没问题,所以我想着拉取其他版本看看,然后忘了在哪篇博客是看到5.1.1这个字眼,所以就拉取了个elasticsearch:5.1.1来试试(踩坑之路就此开始)。
配置映射端口9200,限制运行内存,启动elasticsearch。docker ps
查看是否运行,发现正在运行了,但访问9200端口失败了!!!,再继续docker ps
查看,发现容器停止了工作。
用命令查看docker日志看看发生了上面
docker logs <容器id>
错误信息:
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: No match found
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.1.1.jar:5.1.1]
Caused by: java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:536) ~[?:1.8.0_111]
at org.elasticsearch.monitor.os.OsProbe.getControlGroups(OsProbe.java:213) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.monitor.os.OsProbe.getCgroup(OsProbe.java:402) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.monitor.os.OsProbe.osStats(OsProbe.java:454) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.monitor.os.OsService.<init>(OsService.java:45) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.monitor.MonitorService.<init>(MonitorService.java:45) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.node.Node.<init>(Node.java:345) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.node.Node.<init>(Node.java:229) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap$6.<init>(Bootstrap.java:214) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:214) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
在百度上找了好久跟我一样遇到这个问题的同道中人,不过貌似没几个遇到我这个错误的,无奈之下只好看看传说中的外国友人有没有遇到这个问题。
个人被我在GitHub上找到了跟我一样问题的人https://github.com/elastic/elasticsearch/issues/23218,并且有人提出解决方案
好吧,纠结了半天原来是版本问题,旧版本比较多bug,特别是要适应较新的系统的时候,现在想想5.1.1确实太老了,最新版本都出到5.7了,不过我还是有了5.3.1的版本。
2、重新拉取镜像
docker pull elasticsearch:5.3.1
docker images
3、配置运行elasticsearch
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES03 0b44dca495a2
4、访问9200端口
更多推荐
所有评论(0)