тип тома составления докера - привязка против объема - PullRequest
4 голосов
/ 27 марта 2019

TLDR

В docker-compose, в чем разница между

volumes:
    - type: volume
      source: mydata
      target: /data

и

volumes:
    - type: bind
      source: mydata
      target: /data

Длинный вопрос:

Когда вы указываете опцию volumes в файле docker-compose, вы можете использовать стиль long-syntax

Согласно документам, опция type принимает 3 различных значения: volume, bind и tmpfs:

Я понимаю, что опция tmpfs - означает, что объем не будет сохранен после того, как контейнер не работает. .

Но я не могу найти никаких ссылок в документах о разнице между двумя другими вариантами: bind и volume, может кто-нибудь просветить меня об этом?

1 Ответ

4 голосов
/ 27 марта 2019

Когда bind mounts - это файлы, поступающие с вашего хост-компьютера, тома напоминают в Docker.

  • Bind mounts - это файлы, монтируемые с вашего хост-компьютера (тот, который запускает ваш демон docker) в ваш контейнер.
  • Тома похожи на пространства хранения, полностью управляемые Docker.
    В литературе вы найдете два типа томов:
    • namedтома (вы указываете его имя)
    • анонимные тома (обычные имена UUID из Docker, например, вы можете найти их в контейнере или без тегов)

Эти тома поставляются с собственным набором команд Docker ;Вы также можете просмотреть этот список с помощью

docker volume --help

Вы можете просмотреть свои существующие тома с помощью

docker volume ls

Вы можете создать именованный том с помощью

docker volume create my_named_volume

Но вытакже можно создать том через файл docker-compose

version: "3.3"

services:
  mysql:
    image: mysql
    volumes:
      - type: volume
          source: db-data
          target: /var/lib/mysql/data

volumes:
  db-data:

Там, где эта часть говорит , пожалуйста, докер, смонтируйте мне том с именем db-data поверхкаталог контейнера / var / lib / mysql / data

- type: volume
    source: db-data
    target: /var/lib/mysql/data

И эта часть говорит докеру , пожалуйста, создайте мне том с именем db-data

volumes:
  db-data:

Документация Docker о трех типах крепления:

...