在Docker中安装USB卷

时间:2020-05-20 15:35:24

标签: docker

我有一个连接到debian主机的USB卷。我想将设备“挂载”在docker内部。无法使用--volume,因为该设备可能是短暂的,甚至容器也未运行。

工作流程如下:

  • 容器将启动(只能访问其需要访问的USB设备)
  • 内部装载量
  • 做点事
  • 卸载
  • 停止容器

这不适用于我(/ dev / sdc是我的USB设备。理想情况下,我想使用/ dev / disk / by-id / usb-MBED_VFS_0240000048824e450041700fdedd003598d1000097969900-0:0但--device不能使用:in是路径)

vagrant@parallels:~$ sudo docker run --rm --interactive --tty --device /dev/sdc ubuntu
    [sudo] password for vagrant:
    root@76c5c87bd4a6:/# mkdir /tmp/1
    root@76c5c87bd4a6:/# mount /dev/sdc /tmp/1
    mount: /tmp/1: permission denied.

如果--privileged被通过

vagrant@parallels:~$ sudo docker run --rm --interactive --tty --privileged --device /dev/sdc ubuntu
root@1717829c3d16:/# mkdir /tmp/1
root@1717829c3d16:/# mount /dev/sdc /tmp/1
root@1717829c3d16:/# ls /tmp/1

即使我使用“ --device”,为什么我仍需要通过--privileged

1 个答案:

答案 0 :(得分:0)

传递--device可以使您访问设备,但不授予您通过mount操作修改文件系统的权限。也就是说,“权限被拒绝”错误来自mount尝试,而非尝试访问设备。

请注意,另一种工作流程是将主机上的设备挂载到临时目录,然后用绑定挂载(-v /temporary/mountpoint:/path/in/container标记容器。这样的优点是既不需要--device也不需要特权。

相关问题