使用 Docker 安装 Elastic Stack 并重置本地密码

使用 Docker 安装 Elastic Stack 并重置本地密码

Elastic Stack(也被称为 ELK Stack)是一个非常强大的工具套件,用于实时搜索、分析和可视化大量数据。Elastic Stack 包括 Elasticsearch、Logstash、Kibana 等组件。本文将展示如何使用 Docker 安装 Elasticsearch 并重置本地用户密码。

1. 环境准备

在开始之前,请确保您的系统已经安装了 Docker 和 Docker Compose。如果没有安装,请参考官方文档进行安装:

2. 下载并运行 Elasticsearch Docker 镜像

首先,我们可以使用 Docker 拉取官方的 ElasticSearch 镜像并启动容器。

bash 复制代码
# 拉取官方 ElasticSearch 镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.6.0

接着,我们可以创建一个 Docker 容器并运行 ElasticSearch 实例。

bash 复制代码
# 启动一个 Elasticsearch 容器
docker run -d --name elasticsearch \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ELASTIC_PASSWORD=changeme" \
  docker.elastic.co/elasticsearch/elasticsearch:8.6.0
  • -d:让容器在后台运行。
  • --name elasticsearch:为容器指定一个名称。
  • -p 9200:9200:将容器的 9200 端口映射到主机的 9200 端口,Elasticsearch 的默认 HTTP 服务端口。
  • -p 9300:9300:将容器的 9300 端口映射到主机的 9300 端口,Elasticsearch 的节点间通讯端口。
  • -e "discovery.type=single-node":启用单节点模式。
  • -e "ELASTIC_PASSWORD=changeme":设置初始的超级用户 elastic 的密码。

启动完成后,您可以通过访问 http://localhost:9200 来检查 Elasticsearch 是否正常运行。

bash 复制代码
# 测试是否能够连接到 Elasticsearch
curl -u elastic:changeme http://localhost:9200

3. 使用 Docker 配置和重置本地密码

接下来,我们将介绍如何重置本地用户(如 elastic)的密码。在 Elasticsearch 中,安全功能是启用的,所以如果您使用默认密码 changeme,您可以按照以下步骤更改密码。

步骤 1:进入容器

首先,进入运行中的 Elasticsearch 容器。

bash 复制代码
docker exec -it elasticsearch /bin/bash
步骤 2:使用 elasticsearch-reset-password 工具重置密码

Elasticsearch 提供了一个 elasticsearch-reset-password 工具,可以用来重置用户密码。

bash 复制代码
# 重置 elastic 用户的密码
bin/elasticsearch-reset-password -u elastic

执行命令后,您会看到类似如下的提示:

bash 复制代码
This will reset the password of the elastic user to a random value.
Are you sure you want to continue? [y/N]y

输入 y 继续操作,密码将会被重置,并显示新的密码。

步骤 3:查看重置后的密码

重置成功后,新的密码会显示在控制台中。记住这个密码,稍后用于访问 Elasticsearch。

bash 复制代码
# 退出容器
exit

4. 使用新的密码登录 Elasticsearch

现在,您可以使用新密码登录到 Elasticsearch 实例。

bash 复制代码
curl -u elastic:<new-password> http://localhost:9200

<new-password> 替换为您刚刚获得的密码。如果一切正常,您应该会看到类似下面的响应:

json 复制代码
{
  "name" : "elasticsearch",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "ABC123",
  "version" : {
    "number" : "8.6.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ABC123",
    "build_date" : "2025-04-18T12:00:00.000Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "8.6.0",
    "minimum_index_compatibility_version" : "8.6.0"
  },
  "tagline" : "You Know, for Search"
}

5. 使用 Docker Compose 配置和启动 Elasticsearch

如果你希望使用 Docker Compose 来管理 Elasticsearch 服务,可以创建一个 docker-compose.yml 文件来简化管理。

创建 docker-compose.yml
yaml 复制代码
version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.6.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - ELASTIC_PASSWORD=changeme
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - esdata:/usr/share/elasticsearch/data
    networks:
      - elastic_network

volumes:
  esdata:

networks:
  elastic_network:
    driver: bridge
启动服务
bash 复制代码
docker-compose up -d

然后,您就可以按照之前的步骤重置密码。

6. 总结

通过 Docker 安装 Elasticsearch 和重置本地密码非常简单。利用 Docker 的便利性,我们可以快速启动和配置 Elasticsearch。通过 Docker Compose 管理 Elastic Stack 服务,让您的开发和测试环境更加简洁高效。

相关推荐
洋洋技术笔记几秒前
Spring Boot Web MVC配置详解
spring boot·后端
JxWang05几秒前
VS Code 配置 Markdown 环境
后端
navms4 分钟前
搞懂线程池,先把 Worker 机制啃明白
后端
JxWang054 分钟前
离线数仓的优化及重构
后端
Nyarlathotep01135 分钟前
gin01:初探gin的启动
后端·go
JxWang055 分钟前
安卓手机配置通用多屏协同及自动化脚本
后端
JxWang056 分钟前
Windows Terminal 配置 oh-my-posh
后端
SimonKing23 分钟前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Victor3561 小时前
MongoDB(24)如何对查询结果进行排序?
后端
怕浪猫1 小时前
第21章:微服务与分布式架构中的Go应用
后端·go·编程语言