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的依赖和配置。

相关推荐
Elasticsearch1 小时前
Elastic AI agent builder 介绍(二)
elasticsearch
Garc1 小时前
linux Debian 12 安装 Docker(手动)
linux·docker·debian
苦逼IT运维1 小时前
Kubernetes 双层 Nginx 容器环境下的 CORS 问题及解决方案(极端情况)
运维·nginx·容器·kubernetes·jenkins·运维开发·ci
janthinasnail1 小时前
使用Docker搭建YApi接口管理平台
docker·api接口文档
栗子~~1 小时前
家庭版 windows WSL2 安装Ubuntu 、并在这基础上部署docker、通过本地代理进行联网
windows·ubuntu·docker
熙客2 小时前
Docker核心文件:DockerCompose文件
docker·容器
荣光波比2 小时前
CI/CD(三)—— 【保姆级实操】Jenkins+Docker GitLab+Tomcat 实现微服务CI/CD全流程部署
ci/cd·docker·jenkins
维尔切3 小时前
ELK日志系统部署与使用(Elasticsearch、Logstash、Kibana)
elk·elasticsearch·jenkins·kibana·logstash
janthinasnail3 小时前
使用Docker搭建DOClever接口管理平台
docker·api接口文档
chinesegf9 小时前
Docker篇4-本地项目app.py与docker加载项目镜像的开发顺序
运维·docker·容器