Итак, я создаю рой узлов Elasticsearch, и в идеале я хотел бы, чтобы произошли две вещи.
- Заставить каждый узел сохранять все свои данные в папке на хосте.
- Даже если стек уничтожен, новый контейнер инициализируется, он должен быть в состоянии определить, где был убит предыдущий, используя тот же объем.
Вот что я делаю:
том докера create --opt type = none --opt device = / mnt / data --opt
o = bind --name = эластичные данные
докер-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
А потом я бы запустил стек, разместил некоторые данные, удалил стек и снова посмотрел на него, но данные не сохраняются.
развертывание стека докеров --compose-file docker-compose.yml opendistrostack
Я немного запутался в томах и не могу найти хорошую документацию с подробным объяснением для каждого варианта использования.
Не могли бы вы указать мне правильное направление?
Спасибо.