
Com o Ubuntu, as unidades USB são montadas automaticamente /media/<user>/<drive>
quando são conectadas. Eu queria usar isso para disponibilizar unidades USB recém-conectadas em um contêiner Docker em execução. Então, eu costumava -v /media/<user>:/media/<user>
montar todo o diretório pai dos pontos de montagem USB no contêiner.
Isso funciona bem se a unidade USB estiver conectadaanteso contêiner é iniciado. Neste caso, o ponto de montagem USB tem permissões 0777
e pertence a <user>
. Se uma unidade USB estiver conectada quando o contêiner estiverjá correndo, o ponto de montagem aparece no contêiner, mas tem permissões 0700
e pertence a root
!
Alguém pode lançar alguma luz sobre o que possivelmente está acontecendo aqui? Posso imaginar que as unidades USB são montadas automaticamente como 0700
pertencentes a root
por padrão e depois algum outro mecanismo entra em ação para alterar isso para 0777
e <user>
. Somente a alteração não é captada pelo Docker. Isso é verdade?
Já vasculhei vários tópicos de fóruns e listas de discussão, mas não consegui descobrir o mecanismo. Eu também tentei algumas regras do udev (comoEste), mas não tiveram efeito.
Responder1
Sei que a pergunta é de 2018, mas uma solução seria usar montagens de ligação e definir a "propagação de ligação" como "compartilhada" (não disponível para volumes).
Em vez de:
-v /media/<user>:/media/<user>
Usar:
--mount type=bind,source=/media/<user>,target=/media/<user>,bind-propagation=shared
Mais informações sobre propagação de ligação:https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation
Responder2
rshared
As submontagens da montagem original são expostas às montagens de réplica, e as submontagens das montagens de réplica também são propagadas para a montagem original. mas a propagação também se estende de e para pontos de montagem aninhados em qualquer um dos pontos de montagem originais ou de réplica.
docker run -v /media/$(whoami):/storage:rshared -it ubuntu bash
Mais informações sobre montagem automática:
https://github.com/moby/moby/issues/32512
https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation