簡體   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