繁体   English   中英

在集群上保持Docker卷

[英]Persist docker volume on swarm

因此,我正在建立大量Elasticsearch节点,理想情况下,我希望看到两件事发生。

  1. 使每个节点将其所有数据保存在主机上的文件夹中。
  2. 即使堆栈被破坏,也要初始化一个新的容器,它也应该能够使用相同的体积在之前的容器被杀死的地方取回。

我在做什么:

码头工人卷创建--opt类型=无--opt设备= / mnt / data --opt o = bind --name = elastic-data

泊坞窗,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 swarm仅支持本地卷驱动程序。 每当在新主机上创建容器时,您将始终具有最新数据。

常用技术是使用共享卷/ fs。 我建议实现GlusterFS,它是分布式的并且具有高度可扩展的fs,非常容易上手,并且为大量用例提供了详尽的文档。

此外,您可以在Docker商店中签出一些第三方音量驱动程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM