Elasticsearch——Docker单机部署安装

文章目录

  • [1 简介](#1 简介)
  • [2 Docker安装与配置](#2 Docker安装与配置)
    • [2.1 安装Docker](#2.1 安装Docker)
    • [2.2 配置Docker镜像加速器](#2.2 配置Docker镜像加速器)
    • [2.3 调整Docker资源限制](#2.3 调整Docker资源限制)
  • [3 准备Elasticsearch Docker镜像](#3 准备Elasticsearch Docker镜像)
    • [3.1 下载Elasticsearch镜像](#3.1 下载Elasticsearch镜像)
    • [3.2 自定义镜像配置](#3.2 自定义镜像配置)
    • [3.3执行Docker Compose](#3.3执行Docker Compose)
  • [4 运行Elasticsearch容器](#4 运行Elasticsearch容器)
    • [4.1 创建Elasticsearch容器](#4.1 创建Elasticsearch容器)
    • [4.2 修改配置文件](#4.2 修改配置文件)
    • [4.3 验证Elasticsearch运行状态](#4.3 验证Elasticsearch运行状态)
  • [5 常见问题](#5 常见问题)
  • [6 总结](#6 总结)

1 简介

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

2 Docker安装与配置

2.1 安装Docker

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

2.2 配置Docker镜像加速器

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

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

shell 复制代码
$ sudo vi /etc/docker/daemon.json

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

json 复制代码
{
  "registry-mirrors": ["https://your-registry-mirror-url"]
}

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

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

shell 复制代码
$ sudo systemctl restart docker

2.3 调整Docker资源限制

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

编辑Docker配置文件:

shell 复制代码
$ sudo vi /etc/docker/daemon.json

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

json 复制代码
{
  "default-cgroup-parent": "your-cgroup-parent-path"
}

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

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

shell 复制代码
$ sudo systemctl restart docker

3 准备Elasticsearch Docker镜像

3.1 下载Elasticsearch镜像

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

shell 复制代码
$ docker pull elasticsearch:8.5.0

3.2 自定义镜像配置

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

yaml 复制代码
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

通过将 privileged 设置为 true,容器将获得主机的特权权限,可以执行特权操作。

这个配置将创建一个使用单节点模式的Elasticsearch容器,并将端口9200和9300映射到主机的相应端口上。

3.3执行Docker Compose

bash 复制代码
docker-compose up -d #这是后台执行的命令

4 运行Elasticsearch容器

4.1 创建Elasticsearch容器

使用Docker Compose运行Elasticsearch容器:

shell 复制代码
$ docker-compose up -d

4.2 修改配置文件

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

bash 复制代码
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 -------------------------

4.3 验证Elasticsearch运行状态

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

shell 复制代码
$ curl http://localhost:9200

5 常见问题

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

  • 问题1:无法连接到Elasticsearch容器。

    解决方法:确保Elasticsearch容器正在运行,并且Docker网络配置正确。

  • 问题2:启动Elasticsearch容器时内存不足。

    解决方法:调整Docker资源限制,增加可用内存。

  • 问题3:无法拉取Elasticsearch镜像。

    解决方法:检查Docker镜像加速器配置是否正确,并确保网络连接畅通。

6 总结

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

相关推荐
亚林瓜子13 分钟前
docker compose方式安装ClickHouse数据库
数据库·clickhouse·docker·mac·m1
开发小能手-roy26 分钟前
在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):
linux·ubuntu·docker
细心的莽夫1 小时前
Docker学习笔记
运维·笔记·后端·学习·docker·容器
小宋10212 小时前
Linux安装Elasticsearch详细教程
大数据·elasticsearch·搜索引擎
诗句藏于尽头2 小时前
BT面板docker搭建excalidraw遇到的问题
运维·docker·容器
Elasticsearch2 小时前
Elasticsearch:用向量找到你最合拍的音乐好友 - Spotify Wrapped,第五部分
elasticsearch
弧襪2 小时前
解决 Docker Swarm 集群节点故障:从问题剖析到修复实战
docker·容器
kennygu4 小时前
jenkins项目发布-安装k8s(rancher)客户端kubectl
kubernetes·jenkins·rancher
Elastic 中国社区官方博客5 小时前
Elasticsearch:加快 HNSW 图的合并速度
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
MarkHD5 小时前
第十七天 - Jenkins API集成 - 流水线自动化 - 练习:CI/CD流程优化
ci/cd·自动化·jenkins