My guess is that just installing the driver to the docker image is not enough, the host operating system must have the driver. Is it correct?
If yes, why does the docker image require any drivers if the host already exists? How to correctly delegate docker image to the host? Do these need to be hard-coded for each driver on each host operating system?
From this point of view, does docker need to be hard-coded more or less than VM?
I think the answer may depend on how the device is presented to docker and where the driver must run (such as kernel space and user space).
Thank you!
>Use docker run option -device> Use docker run to The device is mapped to a volume in privileged mode (option -v) –privileged = true
I ran some binary files on ubuntu to control various devices, such as onboard /usb wifi/Bluetooth chip. Some chips require additional drivers.
My guess is that just installing the driver to the docker image is not enough, the host operating system must have a driver. It is it right or not?
If yes, why does the docker image require any drivers if the host already exists? How to correctly delegate docker image to the host? Do these need to be hard-coded for every driver on every host operating system?
From this point of view, does docker need to be hard-coded more or less than VM?
I think the answer may depend on how the device is presented to docker and where the driver must run (such as kernel space and user space).
Thank you!
This will depend on the device and driver. Most drivers require some support from the kernel, and in these cases, the host kernel must provide functionality. Some Driver functions, dependent libraries and applications can be implemented in user space (such as packages libusb, usbutils…), and your container should install these packages. Moreover, when running the container, you must clearly instruct Docker to add the Device mapping (any /dev/*). You have two choices:
>Use docker run option –device> Use docker run to map the device to a volume in privileged mode (option -v )–Privileged = true