我有一台本地 Ubuntu 12.04 机器,我想用一些应用程序代码在它上面运行 Docker。 但是,代码需要在插入 USB 驱动器时从 USB 驱动器中读取数据。因为可以交换驱动器,所以当插入新驱动器时,似乎卷挂载不起作用。有没有办法配置 Docker 所以将 USB 检测传递给 Docker 而不仅仅是主机操作系统?
使用 docker run 命令并在此处讨论:
https://docs.docker.com/engine/reference/run/#volume -shared-filesystems
您可以使用 -v 标志挂载 /dev。 /dev 上出现的任何设备都将显示在容器中。 如果您这样做,您可能还希望更改 cgroup 值以将权限限制为仅 USB 设备。
我们公司的 Jerome 也为此写了这篇博客:
https://jpetazzo.github.io/2015/01/13/docker-mount-dynamic-volumes/
虽然不是文档更改,但如果使用--privileged
启动容器,则/dev
将被挂载为devtmpfs
而不是正常的tmpfs
其中设备由 docker 手动填充。 使用devtmpfs
,内核将在添加和删除设备时自动向/dev
添加/删除条目。
@mstanleyjones你知道这是否在文档中更新了吗?
我对此表示怀疑!
最有用的评论
虽然不是文档更改,但如果使用
--privileged
启动容器,则/dev
将被挂载为devtmpfs
而不是正常的tmpfs
其中设备由 docker 手动填充。 使用devtmpfs
,内核将在添加和删除设备时自动向/dev
添加/删除条目。