Docker容器无法看到串口设备
我正在尝试运行一个docker容器,以访问主机中的“serialport”。 这是我做的:
- 我使用MAC
- 在主机上安装驱动程序( http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41 )
- 插入设备
- 运行返回
/dev/tty.usbserial
ls /dev/t*
– 所以它工作 - 运行容器
docker run -it --privileged -v /dev:/dev node:4.4.0 /bin/bash
,然后在容器里面的ls /dev/t*
里面没有返回/dev/tty.usbserial
设备…
我玩了很多不同的参数的变化,但还没有find工作之一:)另外, – 设备标志不适合我,因为该设备可能会重新连接,名称可能不同于/dev/tty.usbserial
您可以检查“ Docker 容器中的新USB设备通知 ”(来自Guido Diepen – gdiepen
)中描述的脚本是否可以提供帮助。
他也使用--privileged
参数运行他的容器,以允许它访问设备。 然后,在启动容器时,使用参数-v /dev/bus/usb:/dev/bus/usb
将主机目录/dev/bus/usb
挂载到容器内的/dev/bus/usb
目录中。
该脚本使用inotifywait
和lsusb
等设备被(un)插入,并检查它是否是我们感兴趣的设备。
inotifywait
将继续监听dev/bus/usb
目录下的inode创build/删除事件,并且只要创build了与相关设备对应的inode
,就会执行命令。
另请参见,一旦检测到插入的USB设备,如何获取/dev/ttyUSB
总线和设备关系(与/dev/ttyUSB
无关,但仍相关)