使用docker-compose.yml 编写elasticsearch和kibana启动的案例
时间: 2023-03-21 18:03:10 浏览: 172
下面是一个简单的 `docker-compose.yml` 文件,可以用于启动 Elasticsearch 和 Kibana:
```
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
kibana:
image: docker.elastic.co/kibana/kibana:7.16.2
container_name: kibana
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
ports:
- 5601:5601
volumes:
esdata:
driver: local
```
这个 `docker-compose.yml` 文件使用了 Elasticsearch 和 Kibana 的官方 Docker 镜像,它们的版本号都是 `7.16.2`。该文件定义了两个服务,分别是 `elasticsearch` 和 `kibana`。
在 `elasticsearch` 服务中,我们使用了 `docker.elastic.co/elasticsearch/elasticsearch:7.16.2` 镜像,并指定了容器名称 `elasticsearch`。我们还设置了以下环境变量:
- `discovery.type=single-node`:告诉 Elasticsearch 只有一个节点。
- `"ES_JAVA_OPTS=-Xms512m -Xmx512m"`:设置 Elasticsearch 的 Java 虚拟机参数,这里分别设置了初始堆大小和最大堆大小都为 `512m`。
- `ulimits`:设置 Elasticsearch 的内存锁定限制,避免 Elasticsearch 因为内存不足而崩溃。
- `volumes`:将 Elasticsearch 数据目录挂载到宿主机的 `esdata` 卷上。
- `ports`:将 Elasticsearch 的 `9200` 端口映射到宿主机的 `9200` 端口上,以便通过浏览器或其他应用程序访问 Elasticsearch。
在 `kibana` 服务中,我们使用了 `docker.elastic.co/kibana/kibana:7.16.2` 镜像,并指定了容器名称 `kibana`。我们还设置了以下环境变量:
- `ELASTICSEARCH_URL=http://elasticsearch:9200`:告诉 Kibana Elasticsearch 的 URL。
- `ports`:将 Kibana 的 `5601` 端口映射到宿主机的 `5601` 端口上,以便通过浏览器或其他应用程序访问 Kibana。
最后,我们定义了一个名为 `esdata` 的本地卷,用于保存 Elasticsearch 的数据。
阅读全文