欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

docker安装Elasticsearch和Kibana

时间:2023-05-03

此方案仅用于开发、测试环境。

仓库地址:
Elasticsearch:https://hub.docker.com/_/elasticsearch
Kibana: https://hub.docker.com/_/kibana

安装 Elasticsearch

参考:Install Elasticsearch with Docker | Elasticsearch Guide [7.16] | Elastic

拉取镜像

# Elasticsearch 7.16.2 基础镜像是 ubuntu:20.04docker pull elasticsearch:7.16.2# kibana:7.16.2 基础镜像是 centos:8docker pull kibana:7.16.2

如需定制自己的 docker 镜像可参考:
dockerfiles/Dockerfile at v7.16.2 · elastic/dockerfiles (github.com)

创建 elasticsearch 数据挂载目录

export DIR_ES=${HOME}"/dockers/elasticsearch"mkdir -p ${DIR_ES}/datamkdir -p ${DIR_ES}/configmkdir -p ${DIR_ES}/pluginscd ${DIR_ES}sudo chown -R 1000:0 data config plugins

创建 Kibana 配置文件 kibana.yml

# Default kibana configuration for docker targetserver.name: kibanaserver.host: "0.0.0.0"server.shutdownTimeout: "5s"elasticsearch.hosts: ["http://es01:9200"]monitoring.ui.container.elasticsearch.enabled: truei18n.locale: "zh-CN"

# 设置文件权限sudo chown 1000:1000 kibana.yml

容器编排 docker-compose.yml

version: "3"networks: esnet: driver: bridgeservices: es01: image: elasticsearch:7.16.2 container_name: es01 environment: - USER_UID=1000 - USER_GID=0 - node.name=es01 - cluster.name=es-docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms64m -Xmx512m" - "discovery.type=single-node" ulimits: memlock: soft: -1 hard: -1 restart: always volumes: - ./data:/usr/share/elasticsearch/data# - ./config:/usr/share/elasticsearch/config - ./plugins:/usr/share/elasticsearch/plugins - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "9200:9200" - "9300:9300" networks: - esnet kibana: image: kibana:7.16.2 container_name: kibana7162 environment: - USER_UID=1000 - USER_GID=1000 restart: always volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "5601:5601" depends_on: - es01 networks: - esnet

ES_JAVA_OPTS:限制使用内存,不建议生产环境使用。discovery.type=single-node:单节点运行。

检查配置

docker-compose config

启动服务

docker-compose up -d

查看启动日志

docker-compose logs -f

测试

curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"

浏览器访问 Kibana:http://host-ip:5601,其中 “host-ip” 需替换为你的主机 IP。

注:以上配置没有把 Elasticsearch 的配置文件目录 config 映射到宿主机,删除容器后配置会丢失。如需保留配置,可将容器内 config 目录 复制到宿主机:

docker cp -a es01:/usr/share/elasticsearch/config .

然后取消编排文件中 - ./config:/usr/share/elasticsearch/config 行的注释,重启容器。

异常处理

(1) docker 启动 elasticsearch 异常 Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options

原因分析
配置了 config 目录的挂载数据卷,而启动时宿主机的挂载数据文件夹中并没有 jvm.options 文件,找不到文件报错。

解决方案
先将挂载 conf 目录的配置注释,启动 elasticsearch,启动成功后将容器中的 config 文件夹下的文件复制到宿主机,然后取消注释重新启动即可。

docker cp -a es01:/usr/share/elasticsearch/config .

– End –

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。