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

相关推荐
右手嘚温暖1 分钟前
分布式事务Seata、LCN的原理深度剖析
spring boot·分布式·后端·spring·spring cloud·中间件·架构
lishuangquan19872 小时前
在ubuntu上使用jenkins部署.net8程序
ubuntu·jenkins·.net
Absinthe_苦艾酒2 小时前
JVM学习专题(四)对象创建过程
java·jvm·后端
Sally璐璐2 小时前
LVS-DR模式高性能负载均衡实战
运维
路由侠内网穿透3 小时前
本地部署 SQLite 数据库管理工具 SQLite Browser ( Web ) 并实现外部访问
运维·服务器·开发语言·前端·数据库·sqlite
GIS数据转换器3 小时前
AI 技术在智慧城市建设中的融合应用
大数据·人工智能·机器学习·计算机视觉·系统架构·智慧城市
CodeHackerBhx3 小时前
Jenkins
java·运维·jenkins
小白不想白a3 小时前
【docker】namespace 命名空间
运维·docker·容器
忘忧人生3 小时前
docker 容器常用命令
java·docker·容器
hweiyu003 小时前
IDEA搭建GO环境
开发语言·后端·golang·intellij-idea·idea·intellij idea