【发布时间】:2019-09-16 09:30:50
【问题描述】:
所以我正在构建一组 Elasticsearch 节点,理想情况下我希望看到两件事发生。
- 让每个节点将其所有数据保存在主机上的一个文件夹中。
- 即使堆栈已被销毁,新容器也已初始化,它应该能够使用相同的卷拾取前一个容器被杀死的位置。
这就是我正在做的事情:
docker volume create --opt type=none --opt device=/mnt/data --opt o=bind --name=elastic-data
docker-compose.yml
version: '3'
services:
elastic-node1:
image: amazon/opendistro-for-elasticsearch:0.8.0
environment:
- cluster.name=elastic-cluster
- bootstrap.memory_lock=false
- "ES_JAVA_OPTS=-Xms32g -Xmx32g"
- opendistro_security.ssl.http.enabled=false
- discovery.zen.minimum_master_nodes=1
volumes:
- elastic-data:/mnt/data
ports:
- 9200:9200
- 9600:9600
- 2212:2212
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elastic-net
deploy:
mode: replicated
replicas: 1
volumes:
elastic-data:
external: true
然后我会启动堆栈,发布一些数据,删除堆栈并再次凝视它,但数据没有被保留。
docker stack deploy --compose-file docker-compose.yml opendistrostack
我对卷有点困惑,而且我无法找到一个很好的文档,其中包含每个用例的详细说明。 你能指出我正确的方向吗?
谢谢。
【问题讨论】:
标签: docker docker-compose docker-swarm