【发布时间】:2018-05-20 06:34:19
【问题描述】:
我刚刚开始掌握 Docker 和 docker-compose,正在尝试为 Elasticsearch 创建一个开发环境,稍后我将进行部署。
我一直使用docker-elk 作为参考,并且我已经成功地创建了一个有效的 Elasticsearch 容器,将其植入并在我的项目中使用它。
据我了解,Docker 容器不会保留数据,除非您使用 Volumes API 并在容器外部创建一个卷,然后容器将访问该卷(阅读 here)。
然而 docker-elk 只使用 Volumes 来共享一个配置 yml 文件,但不知何故,当我再次启动容器时,我的弹性索引仍然存在。
来自 docker-elk 自述文件:
存储在 Elasticsearch 中的数据 将在容器重新启动后保留,但在容器后不会保留 删除。
谁能解释一下下面配置的哪一部分允许 docker 容器持久化索引?
docker-compose.yml
version: '2'
services:
elasticsearch:
build:
context: build/elasticsearch/
volumes:
- ./build/elasticsearch/config.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- elk
networks:
elk:
driver: bridge
构建/elasticsearch/Dockerfile
FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.0.0
build/elasticsearch/config.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
discovery.type: single-node
【问题讨论】:
标签: docker elasticsearch docker-compose elastic-stack