使用 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/Ny

```

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

相关推荐
ServBay4 小时前
打通 AI 编程本地运维边界,利用 MCP 协议简化环境与服务管理
后端·ai编程·mcp
程序员cxuan4 小时前
DeepSeek 杀入多模态,识图功能正式上线!
人工智能·后端·程序员
小猿姐5 小时前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
IT_陈寒6 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
用户395240998807 小时前
排坑日记:ASP.NET Core 中 "Required field is not provided" 验证错误全记录
后端
用户8356290780518 小时前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
Oneslide9 小时前
sudo免密权限配置不生效
后端
站大爷IP9 小时前
为什么Python不用var或let声明变量?
后端
赴星半途9 小时前
NestJS实战-创建AuthService
后端