• Elasticsearch——Docker单机部署安装


    1 简介

    Elasticsearch是一个开源的分布式搜索和分析引擎,使用Lucene库来实现全文搜索功能。本文将介绍如何使用Docker在单机上部署和安装Elasticsearch。

    2 Docker安装与配置

    2.1 安装Docker

    首先,你需要安装Docker引擎。你可以按照官方文档的指引完成安装过程。确保你的操作系统满足Docker的最低硬件要求。

    2.2 配置Docker镜像加速器

    为了加快Docker镜像的下载速度,你可以配置Docker镜像加速器。这里以阿里云的镜像加速器为例。

    在终端中执行以下命令进行配置:

    $ sudo vi /etc/docker/daemon.json
    
    • 1

    在打开的文件中添加以下内容:

    {
      "registry-mirrors": ["https://your-registry-mirror-url"]
    }
    
    • 1
    • 2
    • 3

    your-registry-mirror-url替换为你使用的镜像加速器的地址。

    保存并关闭文件后,重新启动Docker服务:

    $ sudo systemctl restart docker
    
    • 1

    2.3 调整Docker资源限制

    根据你的需求,你可能需要调整Docker的资源限制,如内存和CPU等。你可以通过修改Docker启动配置文件来实现。

    编辑Docker配置文件:

    $ sudo vi /etc/docker/daemon.json
    
    • 1

    添加以下内容来设置资源限制:

    {
      "default-cgroup-parent": "your-cgroup-parent-path"
    }
    
    • 1
    • 2
    • 3

    your-cgroup-parent-path替换为你自定义的cgroup路径。

    保存并关闭文件后,重新启动Docker服务:

    $ sudo systemctl restart docker
    
    • 1

    3 准备Elasticsearch Docker镜像

    3.1 下载Elasticsearch镜像

    接下来,我们需要从Docker Hub上下载Elasticsearch的官方镜像。执行以下命令以拉取最新的版本:

    $ docker pull elasticsearch:8.5.0
    
    • 1

    3.2 自定义镜像配置

    你也可以根据需要自定义Elasticsearch镜像的配置。这里以Docker Compose为例,创建一个docker-compose.yml文件,并添加以下配置:

    version: '3'
    services:
      elasticsearch:
        image: elasticsearch:8.5.0
        privileged: true
        environment:
          - discovery.type=single-node
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ports:
          - 9200:9200
          - 9300:9300
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    通过将 privileged 设置为 true,容器将获得主机的特权权限,可以执行特权操作。
    这个配置将创建一个使用单节点模式的Elasticsearch容器,并将端口9200和9300映射到主机的相应端口上。

    3.3执行Docker Compose

    docker-compose up -d #这是后台执行的命令
    
    • 1

    4 运行Elasticsearch容器

    4.1 创建Elasticsearch容器

    使用Docker Compose运行Elasticsearch容器:

    $ docker-compose up -d
    
    • 1

    4.2 修改配置文件

    因为这里默认的镜像中的配置文件的网络模式,以及还有一个安全认证的配置需要去掉

    cluster.name: "docker-cluster"
    http.host: 0.0.0.0
    
    #----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
    #
    # The following settings, TLS certificates, and keys have been automatically      
    # generated to configure Elasticsearch security features on 05-09-2023 07:49:11
    #
    # --------------------------------------------------------------------------------
    
    # Enable security features
    xpack.security.enabled: false
    
    xpack.security.enrollment.enabled: true
    
    # Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/http.p12
    
    # Enable encryption and mutual authentication between cluster nodes
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: certs/transport.p12
      truststore.path: certs/transport.p12
    #----------------------- END SECURITY AUTO CONFIGURATION -------------------------
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

    4.3 验证Elasticsearch运行状态

    等待一段时间后,你可以通过curl命令或浏览器访问来验证Elasticsearch的运行状态。以下是一个示例:

    $ curl http://localhost:9200
    
    • 1

    在这里插入图片描述

    5 常见问题

    以下是一些常见问题及其解决方法:

    • 问题1:无法连接到Elasticsearch容器。
      解决方法:确保Elasticsearch容器正在运行,并且Docker网络配置正确。

    • 问题2:启动Elasticsearch容器时内存不足。
      解决方法:调整Docker资源限制,增加可用内存。

    • 问题3:无法拉取Elasticsearch镜像。
      解决方法:检查Docker镜像加速器配置是否正确,并确保网络连接畅通。

    6 总结

    本文介绍了如何使用Docker在单机上部署和安装Elasticsearch。通过使用Docker,我们可以快速搭建开发和测试环境,并有效管理Elasticsearch的依赖和配置。

  • 相关阅读:
    Linux操作-4之stat, find, xargs命令
    php初级教程七 安全E-mail
    算法通过村第七关-树(递归/二叉树遍历)白银笔记|递归实战
    机器人强化学习——第一人称 VS 第三人称
    Linux系统使用命令来查看本地端口的使用情况
    pytorch中Tensor(张量)
    IP可视对讲实时录制系统
    10年老码农亲授:什么是分布式系统
    虹科分享 | 网络流量监控 | 使用 ntopng 收件人和端点进行灵活的警报处理
    Geotrust哪种通配符证书800
  • 原文地址:https://blog.csdn.net/pengjun_ge/article/details/132679243