使用 Docker 部署 Elasticsearch:详细步骤与原创指南

发布于:2025-02-19 ⋅ 阅读:(137) ⋅ 点赞:(0)

使用 Docker 部署 Elasticsearch:详细步骤与原创指南

Elasticsearch 是一个强大的分布式搜索引擎,而 Docker 则是一种轻量级的容器化技术。将 Elasticsearch 部署在 Docker 容器中,可以简化部署流程,提高环境一致性,并方便地进行版本管理和扩展。

在这里插入图片描述

一、环境准备

  • Docker 版本: 18.06 或更高版本
  • Docker Compose 版本: 1.22.0 或更高版本 (可选)

二、部署步骤

1. 拉取 Elasticsearch 镜像

使用以下命令从 Docker Hub 拉取 Elasticsearch 官方镜像:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0

2. 运行 Elasticsearch 容器

使用以下命令运行 Elasticsearch 容器:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.0

参数说明:

  • -d: 后台运行容器
  • --name elasticsearch: 指定容器名称为 elasticsearch
  • -p 9200:9200: 将容器内的 9200 端口映射到宿主机的 9200 端口,用于 HTTP 通信
  • -p 9300:9300: 将容器内的 9300 端口映射到宿主机的 9300 端口,用于节点间通信
  • -e "discovery.type=single-node": 设置 Elasticsearch 为单节点模式

3. 验证部署

打开浏览器,访问 http://localhost:9200,如果看到类似以下的 JSON 信息,说明 Elasticsearch 部署成功:

{
  "name" : "node-1",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "build_date" : "2020-11-05T10:36:47.660Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

三、使用 Docker Compose 部署 (可选)

为了更方便地管理 Elasticsearch 容器,可以使用 Docker Compose 进行部署。

1. 创建 docker-compose.yml 文件

version: '3.7'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - esdata:/usr/share/elasticsearch/data

volumes:
  esdata:

2. 启动 Elasticsearch 容器

docker-compose.yml 文件所在目录下,执行以下命令启动 Elasticsearch 容器:

docker-compose up -d

四、数据持久化

为了防止容器重启后数据丢失,可以将 Elasticsearch 的数据目录挂载到宿主机的目录中。

1. 创建数据目录

在宿主机上创建一个目录用于存储 Elasticsearch 数据,例如 /data/elasticsearch

2. 挂载数据目录

在运行容器时,使用 -v 参数将宿主机的数据目录挂载到容器内的 /usr/share/elasticsearch/data 目录:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /data/elasticsearch:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.10.0