使用 Docker Compose 安装 Elasticsearch 8.15.0
以下是安装 Elasticsearch 8.15.0 的 docker-compose.yml
文件示例:
yaml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- xpack.security.enabled=true
- ELASTIC_PASSWORD=123456
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
- "9300:9300"
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:8.15.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=123456
depends_on:
- elasticsearch
networks:
- elastic
networks:
elastic:
driver: bridge
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- xpack.security.enabled=true
- ELASTIC_PASSWORD=123456
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
- "9300:9300"
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:8.15.0
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=123456
depends_on:
- elasticsearch
networks:
- elastic
networks:
elastic:
driver: bridge
docker exec -it elasticsearch bash
在容器内执行:
bin/elasticsearch-reset-password -u kibana_system -i
输入新密码(建议用123456保持一致性)
使用说明
将上述内容保存为
docker-compose.yml
文件启动 Elasticsearch 服务:
bashdocker-compose up -d
docker-compose up -d
验证 Elasticsearch 是否正常运行:
bashcurl http://localhost:9200
curl http://localhost:9200
安全配置(可选)
对于生产环境,建议启用安全功能。修改环境变量如下:
yaml
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=true
首次启动后,执行以下命令获取默认密码:
bash
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
自定义配置
如果需要自定义配置,可以创建一个 elasticsearch.yml
文件并通过卷挂载:
yaml
volumes:
- ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
volumes:
- ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
注意事项
-Xms1g -Xmx1g
设置了 JVM 堆内存大小,请根据服务器实际情况调整- 生产环境不建议使用
single-node
发现类型