2021年11月26日 Win10下使用Docker部署ElasticSearch
Mahalalel 发布于 阅读:1667 Docker Desktop
背景
win10系统电脑安装Docker Desktop
拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.0
查看docker镜像信息
docker image ls
镜像列表如下:
本地创建ES文件夹
data目录用来存放elasticsearch存储的数据。
结构目录如下:
dockerfile
|- elasticsearch
| |- data
|- docker-compose.yml
编写docker-compose文件
主要作用是批量启动容器,避免在使用多个容器的时候逐个启动的繁琐。
docker-compose.yml内容如下:
version: "3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0
container_name: elasticsearch
restart: always
networks:
- elk
ports:
- "9200:9200"
- "9300:9300"
volumes:
- D:\\develop\\dockerfile\\elasticsearch\\data:/usr/share/elasticsearch/data
启动ES服务
- 1、Win+R,输入“powershell”,进入命令行模式
- 2、进入docker-compose.yml文件所在目录
- 3、运行命令:
docker-compose up -d
执行过程如下图所示:
执行完成之后,通过 docker ps
命令查看,发现elasticsearch确实启动起来了
Docker Desktop 查看运行日志
在运行过程中发现ElasticSearch一直在重启,没有办法稳定运行。
排查发现ES服务运行的异常如下
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题解决
原因:
Linux Distro Virtual Memory Areas 默认的vm.max_map_count值是65530,太小不足以支撑ELK的运行。需要将该值增大到至少262144。
解决方法一:
命令:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
exit
然而这种方法有弊端,重启容器后发现以上设置失效了。
所以推荐下面这种。
解决方法二:
还是命令:
wsl -d docker-desktop
echo 262144 >> /proc/sys/vm/max_map_count
exit
这种方法即使系统重启、容器重启,参数仍然有效。
问题解决。
问题参考链接:
windows max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vm.max_map_count [65530] is too low 问题解决(Windows 10、WSL 2、Docker Desktop)
docker ElasticSearch ES安装 ES启动