win10下使用docker for windows 容器启动ELK
网上的大多教程不全,或者存在问题,对docker for windows存在的问题也说得不详细,特此自己记录一下。配置IP的纯属扯皮,电脑重启,容器内部IP会发生变化,绑定的IP会失效。
一、安装Elasticsearch
- 拉取elasticsearch镜像
//拉取es镜像
docker pull elasticsearch:7.6.2
2. 创建用户定义的网络(用于连接到连接到同一网络的其他服务(例如:Kibana))
注意:如没有设置网络,使用网络内部IP也可访问,但是每次重启IP会发生变化,需要修改Kibana的.yml配置文件
// esnet
docker network create esnet
3. 运行elasticsearch
执行启动命令,加上–network参数,参数为之前设置的网络名称
// An highlighted block
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.type=single-node" elasticsearch:7.6.2
4. 查看启动结果 :http://localhost:9200/
二、安装Logstash
1. 拉取logstash镜像
docker pull logstash:7.6.2
2 执行命令,启动Logstash
// 将5044端口映射出来,--network esnet 必须得有
docker run -d --name logstash --network esnet -p 9600:9600 -p 5044:5044 --restart always logstash:7.6.2
3. 查看请求结果:http://localhost:9600/
三、安装Kibana
1. 拉取kibana镜像
docker pull kibana:7.6.2
2. 运行Kibana容器
docker run --name kibana --worknet esnet -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.6.2
3. 查看请求结果:http://localhost:5601/
到此ELK配置完成。
注意:配置的时候要在同一个网络下。
四.直接拉取sebp/elk镜像
启动ELK
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --restart always--name elk sebp/elk
但是可能会存在虚拟内存的问题
解决办法:
//打开powershell运行
wsl -d docker-desktop
//然后
sysctl -w vm.max_map_count=262144;
exit
然后重启