I am having trouble finding a definite answer as to whether or not docker for windows does currently support USB passthrough with the --device option. Is that the case?
Also, what options are available (VMWare / Docker Machine) to get USB support to run?
How about serial device support?
I am using windows server 2016 but desperately do need usb support for communication purposes…
Can anyone help me out in getting one or several of these questions sorted out?
I also would really like to know if this is possible. It is on Docker Toolbox (you can passthrough USB devices to VBox) but it would really suck if this can’t be done on Docker for Windows under Windows 10 or Windows Server.
Docker for Windows does not support USB pass through. I did a quick search and it appears that Hyper-V does not support this natively. Even if it did we would have to instrument the docker CLI and intercept the --device option and emulate them, which is non-trivial.
Thanks for your replies, seems this is a use case that is also interesting to some others who want to connect docker applications with the “real world”
I’ve not had a chance to look over current progress in the last days, but am picking it up again right now. @rneugeba, according to my results, it seems that docker for windows does not use hyper-v but something called Windows Server Silos for windows containers (is that correct?), therefore there might still be a chance, for Windows host to windows container passing through, less so for linux containers, I agree.
As to my current research, there are two ways that might seem possible to me, I’ll test them further in the upcoming days.
A more indirect approach, in which a USB Device is interfaced at driver-level, data translated to IP packets and then emulated as a device on the target. USBIP
The open-source free packet usbip seems to allow for that, any USB device (probably low-speed) can be transmitted over network and then emulated on the target. Disadvantage: The Host must currently be a linux pc, so the USB device would for example need to be inserted in an external raspberry pi. In my first approaches, I got a raspberry host set up, however the emulation in a docker container does not seem quite straightforward. In theory, the container should be able to be a windows or a linux container.
A commercial project based upon usbip: VirtualHere
Seems to support Windows hosts, and is in comparison to the alternative above quite easy to use (GUI!). However, in order to use more than one device, you’d have to buy the software. With the free version, I was also not able to setup a device in the container in the end.
Both softwares cause a problem for me when emulating the device in the docker container. Although the software successfully connects to the host and sets up the device, I do not seem to be able to see/access it on the container. Maybe one of you would have more luck here…
@rneugeba, What would you say about an option to virtually pass usb devices via virtual network adapters, would you deem this feasible?
did you find something new ? i am using virtual box of Linux machines and it’s working find , but i would like to work with docker on windows directly without virtual box
Following this thread… very interested in knowing if this will be something that is rock solid in the near future?
I am interested in developing a container where a USB check scanning application can run in Windows
After installed Docker for Windows (with turning on Hyper-V) on Windows 10, I could not access my portable drive anymore. Even if I quit docker. USB port isn’t now showing my drive.
Please help me to get it back. Thanks.