Docker compose部署elasticsearch(单机版)
整个工具的代码都在Gitee或者Github地址内
gitee:solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb
github:GitHub - ZeroNing/solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb
1.新增data文件夹
2.新增logs文件夹
3.新增docker-compose.yml文件
version: '3.8' # Docker Compose 文件版本
services:
elasticsearch:
image: elasticsearch:8.15.2 # 使用官方的 Elasticsearch Docker 镜像,版本为 8.15.2
container_name: elasticsearch # 容器的名称
environment: # 配置信息,通过环境变量传递到 Elasticsearch
- node.name=elasticsearch # 节点名称
- cluster.name=es-docker-cluster # 集群名称
- discovery.type=single-node # 启用单节点模式(适用于单机部署)
- bootstrap.memory_lock=true # 启用内存锁定,防止 Elasticsearch 将内存交换到磁盘
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置 JVM 内存分配,最小和最大内存都为 512MB
- xpack.security.enabled=false # 禁用 Elasticsearch 内置的安全功能
- xpack.security.transport.ssl.enabled=false # 禁用传输层的 SSL/TLS 加密
ulimits:
memlock:
soft: -1 # 设置内存锁定的软限制
hard: -1 # 设置内存锁定的硬限制
volumes:
- /etc/localtime:/etc/localtime # 容器与宿主机时间同步
- ./data:/usr/share/elasticsearch/data # 挂载卷,将容器中的数据目录映射到主机
- ./logs:/usr/share/elasticsearch/logs # 持久化存储 Elasticsearch 日志
ports:
- 9200:9200 # 端口映射,将容器的 9200 端口映射到主机
- 9300:9300 # 端口映射,将容器的 9300 端口映射到主机
deploy:
resources:
limits:
memory: 4g # 限制容器使用的最大内存为 4GB
reservations:
memory: 512m # 保留 512MB 内存,保证至少有 512MB 内存分配给容器
restart: always