Docker机器注入USB设备

我目前正在创build自己的docker图像,并且正在尝试将USB摄像头设备插入我的docker集装箱。 search/find很多不同的答案后,我设法做到这一点。

docker run -p 80:80 -v /dev/usb/bus:/dev/bus/usb -t kerberosio 

当我在OSX上工作,因此使用docker-machine时,我将USB设备转发到我的VM,安装了usbutils,在那里:我的USB设备对docker镜像是可见的。

 # lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/12p, 12M |__ Port 1: Dev 2, If 0, Class=Video, Driver=, 12M |__ Port 1: Dev 2, If 1, Class=Video, Driver=, 12M |__ Port 1: Dev 2, If 2, Class=Vendor Specific Class, Driver=, 12M |__ Port 2: Dev 3, If 0, Class=Video, Driver=, 12M |__ Port 2: Dev 3, If 1, Class=Video, Driver=, 12M |__ Port 2: Dev 3, If 2, Class=Audio, Driver=, 12M |__ Port 2: Dev 3, If 3, Class=Audio, Driver=, 12M 

我的下一步是实际使用USB摄像头(端口1和/或端口2)。 但是,当试图打开这些设备与例如fswebcam。 我得到一个错误:

 # fswebcam -d /dev/bus/usb/001/002 --- Opening /dev/bus/usb/001/002... Trying source module v4l2... /dev/bus/usb/001/002 opened. /dev/bus/usb/001/002: Not a V4L2 device? Trying source module v4l1... /dev/bus/usb/001/002 opened. /dev/bus/usb/001/002: Not a V4L device? VIDIOCGCAP: Inappropriate ioctl for device /dev/bus/usb/001/002 closed. Unable to find a source module that can read /dev/bus/usb/001/002. 

所以fswebcam发现设备,但不知道如何处理它。 在做了一些更多的研究之后,我发现找不到驱动程序(参见上面的输出lsusb -t)。

我想知道是否有人可以帮助我,告诉我如何解决这个问题。 我是否需要自己安装驱动程序,如果是的话,我该怎么做? 我很确定这与docker机configuration有关。

我的设置:

  • OSX 10.10.3
  • Docker版本1.9.1

提前致谢!