近期由于工作需要与团队小伙伴一起深入学习了ES相关的一些技巧,于是也在寻求快速搭建实验环境的方案,为了能尽可能减少对开发环境的影响,也尽可能的不去依赖环境,于是准备将ES实验环境部署在Docker中。
对于实验环境有几点要求:
基于这几个条件,写了一个简单的 docker-compose.yml
文件。
网络选择从外部创建是因为方便开放API给其他容器使用,不需要的小伙伴也可以改成随容器自动创建的。
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:6.5.1
container_name: kibana
ports:
- '5601:5601'
depends_on:
- elasticsearch
networks:
- esnet
external_links:
- elasticsearch
networks:
esnet:
external: true
使用 docker-compose up -d
启动时发现 elasticsearch
一直都启动不起来,查看LOG [docker logs elasticsearch
] 发现如下报错:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
参考网上一些解决方案后,在Docker宿主机执行命令sysctl -w vm.max_map_count=262144
临时修改了值,然后再次运行docker start elasticsearch
启动成功,由此便可以愉快的玩耍了。