docker安装运行es遇到的坑
正常情况下运用docker pull下es,然后使用docker run -p 9200:9200 -p 9300:9300 -d 容器,就可以运行容器,但是es有很多配置不得不让你蛋疼的启动不了,下面就楼主遇到的问题进行总结:1、内存问题,Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085
正常情况下运用docker pull下es,然后使用docker run -p 9200:9200 -p 9300:9300 -d 容器,就可以运行容器,但是es有很多配置不得不让你蛋疼的启动不了,下面就楼主遇到的问题进行总结:
1、内存问题,
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory'
es默认2g(5.0以上版本),而在创建docker时默认内存是1g,导致启动失败,这时就需要修改加参数修改容器内存:所加参数为 :-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
2、启动时报:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
需要修改机器max_map_count:
使用docker-machine ssh 机器名称
输入命令:sudo sysctl -w vm.max_map_count=262144
或者修改 /etc/sysctl.conf 文件,添加 “vm.max_map_count”设置
设置后,可以使用sysctl -a查看
3、max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
修改办法为加参数--ulimit nofile=65530:131072
到最后,pull完es后启动es完整命令为:
docker run --name es2 --ulimit nofile=65530:131072 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 6531:9200 -p 6532:9300 -d elasticsearch:5.2 -E bootstrap.memory_lock=false -E bootstrap.system_call_filter=false -E network.host=0.0.0.0 -E http.cors.enabled=true -E http.cors.allow-origin="*"
在windows的docker和docker toolbox下以及linux下亲测有效
更多推荐
所有评论(0)