CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Elasticsearch 入门/课时/Docker 单节点
RawBlame
课时目录12 节

Elasticsearch 入门

  1. 01搜索引擎是什么
  2. 02核心概念
  3. 03Docker 单节点
  4. 04Mapping 与字段类型
  5. 05索引 CRUD
  6. 06查询 DSL
  7. 07聚合入门
  8. 08Spring Data Elasticsearch
  9. 09数据同步
  10. 10分片与扩容
  11. 11Kibana 可视化
  12. 12综合练习

Docker 单节点

elasticsearch:8 镜像、健康检查、curl 验证。

30 分钟

Docker 单节点

本课用 Docker 启动 Elasticsearch 8 单节点,配合 curl 验证集群健康。与 postgresql-essentials Docker PG 实验类似,不替换 本机 MySQL80 服务。

学习目标

  • 用 elasticsearch:8 镜像启动单节点
  • 配置内存、安全与端口映射
  • 用 _cluster/health 与索引 API 验证可用

核心内容

docker-compose 片段

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false   # 本地实验可关;生产必须开
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ports:
      - "9200:9200"
    volumes:
      - es_data:/usr/share/elasticsearch/data

volumes:
  es_data:

启动:docker compose up -d elasticsearch。ES 8 默认启用 HTTPS 与安全;本地关 xpack.security 便于跟练,勿用于公网。

健康检查

curl -s "http://localhost:9200"
# 应返回 cluster_name、tagline

curl -s "http://localhost:9200/_cluster/health?pretty"
# status: yellow 正常(无副本节点)

创建实验 Index

curl -X PUT "localhost:9200/tracks" -H "Content-Type: application/json" -d '
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }
}'

curl -s "localhost:9200/_cat/indices?v"

tracks 对应 CodeRoadMap 课程搜索实验;生产 cf_track 仍在 MySQL。

常见问题

现象处理
容器 OOM 退出降低 ES_JAVA_OPTS 或给 Docker 更多内存
9200 连接拒绝等 30–60s 启动完成;查 docker logs
yellow 长期不变单节点 + replicas=0 可接受;或设 number_of_replicas: 0

可选:同 compose 加 Kibana(es-kibana),端口 5601。es-spring 配置 spring.elasticsearch.uris;spring.datasource.url 保持 MySQL。

练习

  • 启动 ES,确认 为 green 或 yellow
_cluster/health
  • 创建 tracks index,_cat/indices 可见
  • 记录 ES 容器内存占用,与 MySQL80 服务对比
  • 小结

    单节点 Docker + curl 是 ES 入门最短路径;业务库仍连 MySQL。 下一课 Mapping 与字段类型。

    加载本节练习…
    ← 上一课核心概念下一课 →Mapping 与字段类型