Linux#
方法一:使用--device
參數#
1docker run -it --device=/dev/ttyUSB0 ubuntu bash
如此一來便能讓其使用/dev/ttyUSB0
接口
方法二(不推薦):使用--privileged
參數開通所有權限#
1docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb ubuntu bash
簡單暴力,可以直接將/dev/bus/usb
掛載入容器使其得以訪問,但也伴隨著較高的資安風險
。
Windows#
方法一(推薦):安裝 WSL 2,以建立 Linux 環境#
由於其實 docker 也是依賴 linux 環境,因此在 windows 系統下,該方法是最為推薦的。
安裝方法請見官方文檔:https://learn.microsoft.com/en-us/windows/wsl/install
方法二:使用 USB over IP 工具#
這類工具有很多,如 USB/IP PROJECT 就是一個較常見的工具。
接著只要在容器中安裝usbip
,並 attach 上 windows 設備即可:
1sudo apt update
2sudo apt install usbip
3sudo modprobe vhci-hcd
4sudo usbip attach -r <windows-ip> -b <busid>
方法三:將接口轉網路設備#
一樣工具有很多,以下以其中一個知名的工具便是socket cat (socat)
。
安裝並設定完後,在容器中執行:
1sudo apt update
2sudo apt install socat
3socat TCP:<windows-ip>:<port> /dev/ttyUSB0,raw,echo=0
References#
- 《Docker - a way to give access to a host USB or serial device? - Stack Overflow》https://stackoverflow.com/questions/24225647/docker-a-way-to-give-access-to-a-host-usb-or-serial-device