docker官网
https://hub.docker.com/_/elasticsearch
https://hub.docker.com/_/kibana
https://hub.docker.com/_/logstash
ELK官网
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
基础镜像
- ELK官网镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.0
- docker官网镜像
docker pull elasticsearch:7.7.0
docker pull kibana:7.7.0
前置条件
- 文件创建数
修改Linux系统的限制配置,将文件创建数修改为65536个 :
1. 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多
创建的文件是65535个。但是ES至少需要65536的文件创建数的权限。
2. 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可
以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。
vi /etc/security/limits.conf
#新增如下内容在limits.conf文件中
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
- 系统控制权限
修改系统控制权限,ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存。
vi /etc/sysctl.conf
添加参数:新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144
重启生效:让系统控制权限配置生效
sysctl -p
- 创建挂载目录并授权
mkdir -p /data/elasticsearch
chmod 777 -R /data/elasticsearch
docker安装elasticsearch
1.拉取elasticsearch镜像
docker pull elasticsearch:7.7.0

2.拉取kibana镜像
docker pull kibana:7.7.0

3.试运行
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.0

4.将需要挂载的目录和文件copy出来
docker cp elasticsearch://usr/share/elasticsearch/data /data/elasticsearch/
docker cp elasticsearch://usr/share/elasticsearch/plugins /data/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /data/elasticsearch/
![]()
5.删除试运行的容器
docker rm -f elasticsearch
6.修改copy出来的elasticsearch.yml
vi elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
![]()

7.编写Dockerfile文件,自定义镜像
FROM elasticsearch:7.7.0 MAINTAINER elasticsearch-zh from date UTC by Asia/Shanghai "zql@123.com" ENV TZ Asia/Shanghai COPY elasticsearch.yml /usr/share/elasticsearch/config/
8.将Dockerfile文件上传至服务器/data/elasticsearch目录下
docker build -t zql/elasticsearch:7.7.0 .

9.编写docker-compose.yml文件
version: '3'
services:
elasticsearch:
image: zql/elasticsearch:7.7.0
container_name: es
ports:
- 9200:9200
- 9300:9300
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
restart: always
volumes:
- "/data/elasticsearch/data:/usr/share/elasticsearch/data"
- "/data/elasticsearch/plugins:/usr/share/elasticsearch/plugins"
kibana:
image: kibana:7.7.0
container_name: kibanna7
ports:
- 5601:5601
restart: always
depends_on:
- elasticsearch
10.根据docker-compose运行容器
docker-compose up -d
访问测试:
http://192.168.8.128:5601

大功告成。
本文档详细介绍了如何在Linux系统上使用Docker安装和配置ELK(Elasticsearch、Logstash、Kibana)栈。首先,需要修改系统限制以允许创建更多文件和线程,然后拉取相关镜像,进行试运行和数据挂载。接着,自定义Dockerfile和编写docker-compose.yml文件,确保Elasticsearch和Kibana的配置。最后,通过docker-compose启动服务,并完成访问测试。
561

被折叠的 条评论
为什么被折叠?



