在docker中启动Elasticsearch镜像

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES 2bd69c322e98

然后就很开心的去访问端口试试 http://localhost:9200/
结果访问都不成功,此时心里 ?

很自然的查看容器是否真正起了

结果。。。。

然后的查看容器日志发现

docker logs ES


第一个原因是
容器虚拟内存空间给小了,至少需要262144

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法

  • 方法一
    修改之后,如果重启虚拟机将失效
	 sysctl -w vm.max_map_count=262144
      //查看结果:
      sysctl -a|grep vm.max_map_count
      //显示:vm.max_map_count = 262144
  • 方法二
vim /etc/sysctl.conf
//在最后一行上加上
vm.max_map_count=262144
//保存退出,加载配置,启动容器,就能够访问了