因此,我正在建立大量Elasticsearch节点,理想情况下,我希望看到两件事发生。
我正在做什么:
docker volume create --opt类型=无--opt设备= / 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
我对卷有些困惑,无法找到包含每个用例详细说明的好的文档。 你能指出我正确的方向吗?
谢谢。
答案 0 :(得分:1)
因为它是docker swarm仅支持本地卷驱动程序。每当在新主机上创建容器时,您将始终拥有最新数据。
常用技术是使用共享卷/ fs。我建议实现GlusterFS,它是分布式的并且具有高度可扩展的fs,非常容易上手,并且为大量用例提供了详尽的文档。
此外,您可以在docker store中签出一些第三方音量驱动程序。