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

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

1. 环境准备

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

  • Docker 安装指南\](https://docs.docker.com/get-docker/)

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 服务,让您的开发和测试环境更加简洁高效。

相关推荐
Cobyte14 分钟前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
忆~遂愿17 分钟前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
米羊12131 分钟前
已有安全措施确认(上)
大数据·网络
Fcy64837 分钟前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满38 分钟前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠1 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
程序员侠客行1 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
Honmaple1 小时前
QMD (Quarto Markdown) 搭建与使用指南
后端
Harvey9031 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
PP东1 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable