docker bind - монтирование управляемого тома

что делает докер, когда вы связываете и монтируете том в своей команде docker "run", которая уже является управляемым томом, определенным в файле / образе сборки докера?

Пример:

  • dockerfile определяет / myvolume как управляемый том
  • затем: docker run -v / ‹my_host_dir>: / myvolume ... /‹ image>

Я вижу, что управляемый том больше не создается. Вместо этого проходит bind-mount и монтирует host-dir в контейнер.

Что происходит за кадром? Это где-то задокументировано, и поэтому на что-то можно рассчитывать?

BR Volker


person vkoster    schedule 16.02.2017    source источник
comment
Что именно вы имеете в виду, говоря о том, что я вижу, так это то, что управляемый том больше не создается. /myvolume должен существовать внутри контейнера weather или нет, вы установили его привязкой.   -  person Martin    schedule 16.02.2017


Ответы (1)


Оператор VOLUME в Dockerfile просто отмечает каталог как монтируемый откуда-то еще, чтобы помочь пользователям образа. Например, когда вы создаете Database-Image, пользователь этого изображения обычно хочет сохранить дату вне контейнера.

Если вы (как создатель образа / средства записи файла Dockerfile) пометили каталог как VOLUME, пользователь образа (тот, кто выполняет docker run или аналогичный) имеет представление, где в контейнере он должен смонтировать каталог из за пределами.

person Martin    schedule 16.02.2017
comment
Спасибо, Мартин, просто проверяю: когда пользователю образа все равно, где Docker хранит том, он просто использует образ как есть. Он всегда может узнать это с помощью docker inspect. Но если ему нужны файлы в определенном месте на хосте, он указывает привязку-монтирование в команде docker run. Что так? - person vkoster; 16.02.2017
comment
Нет. Просто наличие оператора VOLUME в файле Docker вообще не влияет на хост. Это просто ярлык. Когда пользователь не устанавливает флаг -v при запуске, каталог на хосте не создается. (-v монтирует существующий каталог ИЛИ создает каталог, а затем монтирует его) - person Martin; 16.02.2017