在哪里安装设备驱动程序以使docker识别设备?

时间:2015-02-21 01:50:41

标签: wifi docker virtual-machine driver

我在ubuntu上运行了一些二进制文件,可以控制各种设备,如板载/ usb wifi /蓝牙芯片。一些芯片需要额外的驱动程序。

我的猜测是仅仅将驱动程序安装到docker镜像是不够的,主机操作系统必须有驱动程序。这是对的吗?

如果是,为什么如果主机已经存在,则docker镜像需要任何驱动程序? docker image如何正确委托给主机?这些是否需要为每个主机操作系统上的每个驱动程序进行硬编码?

同样从这个角度来看,docker是否需要比VM更多或更少的硬编码?

我觉得答案可能取决于设备如何呈现给docker以及驱动程序必须运行的位置(例如内核空间与用户空间)。

谢谢!

1 个答案:

答案 0 :(得分:4)

这取决于设备和驱动程序。大多数驱动程序需要来自内核的一些支持,在这些情况下,主机内核必须提供功能。一些驱动程序的功能,依赖库和应用程序可以在用户空间中实现(例如包libusb,usbutils ......),并且您的容器应该安装这些包。而且,在运行容器时,必须明确指示Docker将容器中的设备映射(任何/ dev / *)。您有两种选择:

  1. docker run与选项--device
  2. 一起使用
  3. 使用docker run将设备映射为特权模式-v
  4. 中的卷(选项--privileged=true