首先正常启动
docker run -d -p 9201:9200 -p 9301:9300 --name ES02 d7052f192d01
会发现 这玩意儿根本跑不起来,因为这东西启动需要2g的虚拟内存,正常咱们装的虚拟机根本没有分配到这么大的虚拟内存所以要这么写
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9200 -p 9301:9300 --name ES02 d7052f192d01
然后你会发现,你的elasticsearch运行起来了,是不是很高兴,你去页面访问ip:9201,是不是发现没法访问 ?
咱们再看用docker ps 看看,是不是发现你的软件又停掉了?
咱们打开log看看
是不是很发现log里面有这么个东西 ?
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
没错这玩意而就是告诉你
最大虚拟内存区太小了,让你设置大点,咱们再运行下这个
sudo sysctl -w vm.max_map_count=262144
然后再启动
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9200 -p 9301:9300 --name ES02 d7052f192d01
是不是以为好了?不不不仔细去看log里面还有一个报错
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
这玩意儿好像是说。。。好吧我也忘了,我找了好长时间基本都是让该yml文件的,问题是咱们装docker之后能找到文件在哪的。。。估计不多吧,然后我找到了这个东西
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e “discovery.type=single-node” -d -p 9201:9200 -p 9301:9300 --name ES02 d7052f192d01
-e "discovery.type=single-node"这个东西好像是说设置单机使用来着,好像是吧,然后咱们再启动
就发现完事了

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐