当前位置: 首页 > news >正文

使用 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/)
- [Docker Compose 安装指南](https://docs.docker.com/compose/install/)

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

相关文章:

  • STM32CubeMX-H7-15-SPI通信协议读写W25Q64
  • 第11篇:Linux程序访问控制FPGA端HEX<四>
  • C++23 新特性:行拼接前去除空白符 (P2223R2)
  • 相比其他缓存/内存数据库(如 Memcached, Ehcache 等),Redis 在微服务环境中的优势和劣势是什么?
  • 浪涌保护器:纳秒盾支持2/4/8线制,全面防护信号、电源及网络设备 智能防雷设备
  • 力扣每日打卡 2364. 统计坏数对的数目 (中等)
  • 【java 13天进阶Day06】Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法
  • 硬盘变废为宝!西部数据携微软等启动稀土回收 效率可达90%
  • 学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
  • 自动驾驶与机器人算法学习
  • 数据结构--并查集-高效处理连通性问题
  • 细节:如何制作高质量的VR全景图
  • Yocto项目实战教程 · 第4章:4.2小节-菜谱
  • 「GitHub热榜」AIGC系统源码:AI问答+绘画+PPT+音乐生成一站式
  • GreatSQL启动崩溃:jemalloc依赖缺失问题排查
  • ReAct、CoT 和 ToT:大模型提示词推理架构的对比分析
  • windwos脚本 | 基于scrcpy,只投声音、只投画面
  • DNS解析失败怎么解决?
  • 基于 S2SH 架构的企业车辆管理系统:设计、实现与应用
  • 深入理解synchronized
  • 如何保护人工智能领域的知识产权?上海市知识产权局局长解答
  • 中小企业收款难何解?快速认定企业身份并理顺付款责任链条
  • 俄“联盟MS-26”载人飞船安全返回地球
  • 礼来公布口服降糖药积极结果,或年底前提交用于体重管理上市申请
  • 杭州挂牌3宗住宅用地,起始总价约30.04亿元
  • 中国驻德国大使馆公使曾颖如,调任广州医科大学党委书记