docker network create elastic-network
创建自定义网络elastic-network
docker run -d
--name elasticsearch
--network elastic-network \ # 自定义网络
-p 9200:9200
-e "discovery.type=single-node"
-e "xpack.security.enabled=true" \ # 启用安全认证
-e "ELASTIC_PASSWORD=your_strong_password" \ # 超级用户密码(用于创建服务账户)
-e "http.cors.enabled=true"
-e "http.cors.allow-origin=http://kibana:5601" \ # 允许 Kibana 跨域访问
docker.elastic.co/elasticsearch/elasticsearch:8.15.1
访问elasticsearch
使用restfu风格 操作数据
需要创建一个专用服务账户
curl -u elastic:your_strong_password -X POST "http://localhost:9200/_security/user/kibana_service" -H "Content-Type: application/json" -d'
{
"password": "kibana_service_password", # 服务账户密码
"roles": ["kibana_system"], # 分配内置角色(仅访问 .kibana 索引)
"metadata": {
"description": "Service account for Kibana"
}
}'
docker run -d
--name kibana
--network elastic-network \ # 与 ES 共享网络
-p 5601:5601
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \ # ES 容器地址
-e "ELASTICSEARCH_USERNAME=kibana_service" \ # 服务账户用户名
-e "ELASTICSEARCH_PASSWORD=kibana_service_password" \ # 服务账户密码(与步骤 2 一致)
-e "KIBANA_DEFAULTAPP_ID=dashboard"
docker.elastic.co/kibana/kibana:8.15.1
访问kibana