起初:docker安装好elasticsearch,正常启动之后,发现通过端口访问被拒绝,但是小编也查看了docker正在运行的容器,发现elasticsearch镜像确实是在运行的
1.配置工作
小编在这里补充一下,下载Elasticsearch镜像的时候不指定版本会超时,所以下载的时候建议指定版本
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name 自定义名称 容器镜像ID
启动是没有问题的,确实也在容器中存在
但是在通过端口号访问的时候出现拒绝访问异常
2.解决方案
首先查看日志是否报错
docker logs -f 容器id
果然出现了错误,这里他要求max_map_count的至少是262144,而我们当前是65530
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2020-05-25T17:29:42,123][INFO ][o.e.n.Node ] [3tSPljD] stopping ...
[2020-05-25T17:29:42,231][INFO ][o.e.n.Node ] [3tSPljD] stopped
[2020-05-25T17:29:42,231][INFO ][o.e.n.Node ] [3tSPljD] closing ...
[2020-05-25T17:29:42,407][INFO ][o.e.n.Node ] [3tSPljD] closed
[2020-05-25T17:29:42,420][INFO ][o.e.x.m.p.NativeController] [3tSPljD] Native controller process has stopped - no new native processes can be started
查看max_map_count :
cat /proc/sys/vm/max_map_count
65530
设置max_map_count
sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
重启容器
docker start 容器ID
最后看到返回的json数据就成功了