Eu tenho uma máquina Ubuntu 12.04 local na qual quero executar o Docker com algum código de aplicativo. No entanto, o código precisa ler os dados de uma unidade USB quando ela está conectada. Como a unidade pode ser trocada, parece que a montagem de volume não funciona quando a nova unidade está conectada. Existe uma maneira de configurar o Docker para que a detecção usb é passada para o Docker em vez de apenas o sistema operacional do host?
Use o comando docker run e discutido aqui:
https://docs.docker.com/engine/reference/run/#volume -shared-filesystems
Você pode montar /dev usando o sinalizador -v. Qualquer dispositivo que apareça em /dev aparecerá no contêiner. Se você fizer isso, provavelmente também desejará alterar o valor do cgroup para restringir as permissões apenas ao dispositivo USB.
Jerome em nossa empresa também escreveu este blog sobre como fazer isso:
https://jpetazzo.github.io/2015/01/13/docker-mount-dynamic-volumes/
Embora não seja uma mudança de documentação, algo que pode ser legal é que, se o contêiner for lançado com --privileged
, que /dev
seja montado como devtmpfs
em vez de tmpfs
normal devtmpfs
, o kernel adicionará/removerá automaticamente entradas para /dev
à medida que os dispositivos são adicionados e removidos.
@mstanleyjones você sabe se isso foi atualizado na documentação?
Eu duvido!
Comentários muito úteis
Embora não seja uma mudança de documentação, algo que pode ser legal é que, se o contêiner for lançado com
--privileged
, que/dev
seja montado comodevtmpfs
em vez detmpfs
normaldevtmpfs
, o kernel adicionará/removerá automaticamente entradas para/dev
à medida que os dispositivos são adicionados e removidos.