Понимание volumn в docker compose - PullRequest
       0

Понимание volumn в docker compose

0 голосов
/ 04 февраля 2019

Ниже приведен пример, приведенный в https://docker -curriculum.com /

version: "3"
services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: es
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
    volumes:
      - esdata1:/usr/share/elasticsearch/data
  web:
    image: prakhar1989/foodtrucks-web
    command: python app.py
    depends_on:
      - es
    ports:
      - 5000:5000
    volumes:
      - ./flask-app:/opt/flask-app
volumes:
    esdata1:
      driver: local

и в нем говорится The volumes parameter specifies a mount point in our web container where the code will reside о /opt/flask-app

Я думаю, это означает, что /opt/flask-app является точкой монтирования и указывает на хост-машины ./flask-app

Однако в нем ничего не сказано о esdata1, и я не могу применить то же объяснение, что и данноена /opt/flask-app, поскольку на хост-компьютере нет каталога / файла esdata1.

Что происходит с esdata1?Я предполагаю, что это означает создание тома (самое близкое, что я могу придумать, это раздел на диске), назовите его esdata1 и смонтируйте его на /usr/share/elasticsearch/data, я прав в этом предположении?

1 Ответ

0 голосов
/ 04 февраля 2019

Это немного разные вещи: volumes и bind mounts.Bind mounts позволяет вам указать папку на host машине, которая будет служить хранилищем.Тома (в аренде для local драйвера) также имеют папки на хост-машинах, но их расположение управляется Docker, и иногда их немного сложнее найти.

При указании тома в docker-compose.yml, еслиВаш путь начинается с / или ., он становится bind mount, как в web сервисе.В противном случае, если это один глагол, это volume, как для службы es.

Вы можете проверить все тома на хосте, запустив docker volume ls.

Что происходит с esdata1?Я предполагаю, что это означает создание тома (самое близкое, что я могу придумать, это раздел на диске), назовите его esdata1 и смонтируйте его в / usr / share /asticsearch / data, я правильно понял это предположение?

Все правильно.

Я не претендую на настройку правил, но в целом volumes больше подходят для совместного использования общих данных между несколькими контейнерами, как в docker-compose, в то время какbind mounts пакет лучше для обмена данными с хоста на контейнер, как некоторые начальные настройки для сервисов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...