Docker 快速部署 Elasticsearch 和 Kibana:打造强大的搜索与可视化分析环境

序言

在当今数字化时代,搜索功能和数据可视化分析对于应用程序的重要性越来越突出。Elasticsearch 和 Kibana 是两个备受欢迎的工具,它们能够为你的应用程序提供卓越的搜索和数据可视化功能。而通过 Docker,你可以轻松地将它们部署到你的开发或生产环境中。

一、Elasticsearch 部署流程

  1. 创建网络:目的是让 Elasticsearch 和 Kibana 容器互联。

    docker network create es-net
    
  2. 拉取镜像

    docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.1
    
  3. 启动容器

    docker run \
      # 后台启动
      -d \
      # 指定容器名称
    	--name es \
      # 设置内存大小
      -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
      # 设置非集群模式
      -e "discovery.type=single-node" \
      # 挂载逻辑卷,绑定 es 的数据目录
      -v es-data:/usr/share/elasticsearch/data \
      # 挂载逻辑卷,绑定 es 的日志目录
      -v es-logs:/usr/share/elasticsearch/logs \
      # 挂载逻辑卷,绑定 es 的插件目录
      -v es-plugins:/usr/share/elasticsearch/plugins \
      # 授予逻辑卷访问权
      --privileged \
      # 指定使用 es-net 网络
      --network es-net \
      # WEB 浏览器访问端口
      -p 9200:9200 \
      # es 节点之间的通信端口
      -p 9300:9300 \
      # 使用的镜像
      docker.elastic.co/elasticsearch/elasticsearch:7.15.1
    
  4. 打开浏览器输入网址 localhost:9200 查看 Elasticsearch 容器是否正常启动

    image.png

二、Kibana 部署流程

  1. 拉取镜像

    docker pull docker.elastic.co/kibana/kibana:7.15.1
    
  2. 启动容器

    docker run \
      # 后台启动
      -d \
      # 指定容器名称
      --name kibana \
      # 指定使用 es-net 网络,与 elasticsearch 在同一个网络中
      --network=es-net \
      # 设置 elasticsearch 的地址
      # 因为 kibana 已经与 elasticsearch 在一个网络,因此可以用容器名直接访问 elasticsearch
      -e ELASTICSEARCH_HOSTS=http://es:9200 \
      # WEB 访问端口
      -p 5601:5601  \
      # 使用的镜像
      docker.elastic.co/kibana/kibana:7.15.1
    
  3. 打开浏览器输入网址 localhost:5601 查看 Kibana 容器是否正常启动

    image.png

三、Docker Compose 一键部署

之前,我们是分开部署的 Elasticsearch 和 Kibana。这种部署方式不仅需要保证部署的先后顺序(因为 Elasticsearch 必须先于 Kibana 启动),命令输入时也可能出错。为了解决这些问题,我们可以使用 Docker Compose 实现一键部署。

  1. 编写 docker-compose.yml文件

    # 指定 Docker Compose 文件的版本
    version: '3.7'
    
    # 定义服务
    services:
      # Elasticsearch 服务
      es:
        # 使用 Elasticsearch 镜像
        image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1
        # 指定容器名称
        container_name: es
        # 设置环境变量
        environment:
          - ES_JAVA_OPTS=-Xms512m -Xmx512m
          - discovery.type=single-node
        # 挂载卷
        volumes:
          - es-data:/usr/share/elasticsearch/data
          - es-logs:/usr/share/elasticsearch/logs
          - es-plugins:/usr/share/elasticsearch/plugins
        # 授予特权权限
        privileged: true
        # 指定网络
        networks:
          - es-net
        # 端口映射
        ports:
          - "9200:9200"
          - "9300:9300"
    
      # Kibana 服务
      kibana:
        # 使用 Kibana 镜像
        image: docker.elastic.co/kibana/kibana:7.15.1
        # 指定容器名称
        container_name: kibana
        # 设置环境变量
        environment:
          - ELASTICSEARCH_HOSTS=http://es:9200
        # 指定网络
        networks:
          - es-net
        # 端口映射
        ports:
          - "5601:5601"
        # 依赖关系,确保 Elasticsearch 服务先于 Kibana 服务启动
        depends_on:
          - es
    
    # 定义网络
    networks:
      # 定义名为 es-net 的网络,使用 bridge 驱动
      es-net:
        driver: bridge
    
    # 定义卷
    volumes:
      # 定义名为 es-data 的卷
      es-data:
      # 定义名为 es-logs 的卷
      es-logs:
      # 定义名为 es-plugins 的卷
      es-plugins:
    
  2. docker-compose.yml文件所在目录执行命令一键启动

    # 根据 docker-compose.yml 文件启动服务, 前台启动
    docker-compose up
    

    docker-compose up 命令属于前台启动,若想后台启动可执行以下命令

    # 后台启动
    docker-compose up -d
    # 停止后台运行的服务
    docker-compose down
    
  3. 打开浏览器输入网址 localhost:9200localhost:5601 查看 Elasticsearch 和 Kibana 容器启动情况

    image.png

四、FAQ

  1. 部署 Elasticsearch 和 Kibana 时,需要注意版本的对应关系。否则,可能出现版本不兼容导致问题。
  2. 使用 Docker Compose 一键部署需要提前安装 Docker Compose。具体可参考官方文档

推荐阅读

  1. RabbitMQ(Docker 单机部署)
  2. 深入理解 Java 并发:AbstractQueuedSynchronizer 源码分析
  3. 深入了解 Arthas:Java 应用程序诊断利器
  4. 基于 AI 的数据库助手-Chat2DB
  5. EasyExcel 处理 Excel
  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Docker是一个开源的容器化平台,可以帮助开发人员和运维团队更轻松地构建、发布和运行应用程序。Elasticsearch是一种流行的开源搜索分析引擎,而Kibana是一个用于可视化和管理Elasticsearch数据的开源工具。 为了让ElasticsearchKibana互联,首先需要创建一个Docker网络。可以使用以下命令创建名为es-net的网络: ``` docker network create es-net ``` 接下来,需要下载并安装Elasticsearch插件。可以使用以下命令将IK分词器插件安装到Elasticsearch中: ``` ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip ``` 然后,可以执行以下命令来运行Elasticsearch容器: ``` docker run -d --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v es-data:/usr/share/elasticsearch/data -v es-plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 ``` 最后,现在可以安装Kibana并与Elasticsearch连接。具体安装和配置Kibana的步骤会因版本而异,可以参考官方文档进行操作。 通过以上步骤,您可以成功搭建和连接Docker中的ElasticsearchKibana。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [通过Docker安装ElasticSearchKibana](https://blog.csdn.net/m0_67391683/article/details/126618272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值