要搭建单节点Elasticsearch和Kibana,您可以创建一个docker-compose.yml文件,然后使用以下内容:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
container_name: elasticsearch
environment:
- node.name=elasticsearch
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.15.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
volumes:
esdata:
该文件定义了两个服务:Elasticsearch和Kibana。Elasticsearch服务使用docker.elastic.co提供的官方镜像,并将容器命名为“elasticsearch”。其中包括一些环境变量来设置Elasticsearch节点的名称、发现类型和Java堆大小。此外,将端口9200映射到主机上,以便可以通过http访问Elasticsearch API。
Kibana服务同样使用docker.elastic.co提供的官方镜像,并将容器命名为“kibana”。在此配置中,添加了一个环境变量,该变量告诉Kibana要连接到Elasticsearch实例。端口5601也被映射到主机上,以便可以通过Web浏览器访问Kibana UI。
最后,为Elasticsearch服务添加了一个卷,该卷将用于保存数据。在这里,我们已命名该卷为“esdata”。
要启动这些服务,请在docker-compose.yml文件所在的目录中运行以下命令:
docker-compose up -d
此命令将创建并运行Elasticsearch和Kibana容器。一旦容器启动,您就可以使用以下URL访问Kibana UI:http://localhost:5601。同样,您可以使用以下URL访问Elasticsearch API:http://localhost:9200/_cat/health?v
如果您想停止并删除这些容器,请运行以下命令:
docker-compose down
这将停止并删除所有Elasticsearch和Kibana容器,并删除与“esdata”卷相关联的任何数据。