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
大功告成。