
В Ubuntu USB-накопители автоматически монтируются при /media/<user>/<drive>
подключении. Я хотел использовать это, чтобы сделать вновь подключенные USB-накопители доступными в работающем контейнере Docker. Поэтому я монтировал -v /media/<user>:/media/<user>
весь родительский каталог точек монтирования USB в контейнер.
Это хорошо работает, если USB-накопитель был подключен.доконтейнер запускается. В этом случае точка монтирования USB имеет разрешения 0777
и принадлежит <user>
. Если USB-накопитель подключен, когда контейнеруже работает, точка монтирования отображается в контейнере, но имеет разрешения 0700
и принадлежит root
!
Может ли кто-нибудь пролить свет на то, что здесь может происходить? Я могу себе представить, что USB-накопители автоматически монтируются как 0700
принадлежащие root
по умолчанию, а затем срабатывает какой-то другой механизм, чтобы изменить это на 0777
и <user>
. Только это изменение не подхватывается Docker. Это правда?
Я уже перерыл кучу форумных тем и списков рассылки, но не смог понять механизм. Я также попробовал некоторые правила udev (вродеВот этот), но это не имело никакого эффекта.
решение1
Я знаю, что вопрос возник в 2018 году, но решением было бы использование bind-mounts и установка «распространения привязки» на «shared» (недоступно для томов).
Вместо:
-v /media/<user>:/media/<user>
Использовать:
--mount type=bind,source=/media/<user>,target=/media/<user>,bind-propagation=shared
Дополнительная информация о связывании-распространении:https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation
решение2
rshared
Подкрепления исходного монтирования подвергаются воздействию монтирований-реплик, а подкрепления монтирований-реплик также распространяются на исходное монтирование. Однако распространение также распространяется на точки монтирования, вложенные в любые исходные или репликационные точки монтирования, и из них.
docker run -v /media/$(whoami):/storage:rshared -it ubuntu bash
Дополнительная информация об автоматическом монтировании:
https://github.com/moby/moby/issues/32512
https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation