创建目录
shell
mkdir -p /home/wq/elasticsearch/data
mkdir -p /home/wq/elasticsearch/logs
编辑compose
shell
vi my-es-compose.yml
shell
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:9.2.1
container_name: es9
environment:
- node.name=es9
- cluster.name=es9-cluster
- discovery.type=single-node
# 内存,按你机器情况改
- ES_JAVA_OPTS=-Xms2g -Xmx2g
# 开启安全(默认其实就是 true,这里显式写出来)
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false # 关闭 HTTP TLS,只用 http
- xpack.security.transport.ssl.enabled=false # 关闭集群内部 TLS(单机不需要)
# 设置内置 elastic 用户密码(模拟生产)
- ELASTIC_PASSWORD=123456
# license
- xpack.license.self_generated.type=basic
- ingest.geoip.downloader.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/wq/elasticsearch/data:/usr/share/elasticsearch/data
- /home/wq/elasticsearch/logs:/usr/share/elasticsearch/logs
ports:
- "9200:9200"
- "9300:9300"
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:9.2.1
container_name: kibana9
environment:
# 注意新版 Kibana 用 ELASTICSEARCH_HOSTS(数组形式也可以)
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
# 告诉 Kibana 用账号密码连接 ES,密码
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=123456
# 如果你用中文界面,可以加(也可在 UI 内设置)
# - I18N_LOCALE=zh-CN
depends_on:
- elasticsearch
ports:
- "5601:5601"
networks:
- elastic
networks:
elastic:
driver: bridge
执行docker命令
shell
# 启动,在my-es-compose.yml同级目录
docker compose -f my-es-compose.yml up -d
# 进入es设置kibana9连接es的账号密码kibana9
docker exec -it es9 bash
bin/elasticsearch-reset-password -u kibana_system -i
# 将密码设置为ELASTICSEARCH_PASSWORD=123456的值
# 停止并删除容器
docker compose -f my-es-compose.yml down
# 重新启动
docker compose -f my-es-compose.yml up -d

访问验证
bash
http://127.0.0.1:5601/
账号默认:elastic
密码为ELASTIC_PASSWORD的值:123456