3 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超7個贊
有兩種選擇。您可以使用--device可用于訪問無--privileged模式USB設(shè)備的標(biāo)志:
docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
或者,假設(shè)您的USB設(shè)備在主機(jī)上的驅(qū)動程序可用等情況下可用/dev/bus/usb,則可以使用特權(quán)模式和volumes選項將其安裝在容器中。例如:
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb ubuntu bash
請注意,顧名思義,它--privileged是不安全的 ,應(yīng)謹(jǐn)慎處理。

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
對于當(dāng)前版本的Docker,您可以使用該--device標(biāo)志來實現(xiàn)所需的功能,而無需授予對所有USB設(shè)備的訪問權(quán)限。
例如,如果您只想/dev/ttyUSB0在Docker容器中進(jìn)行訪問,則可以執(zhí)行以下操作:
docker run -t -i --device=/dev/ttyUSB0 ubuntu bash

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊
我想擴(kuò)展已經(jīng)給出的答案,以包括對未捕獲的動態(tài)連接設(shè)備的支持,/dev/bus/usb以及如何在將Windows主機(jī)與boot2docker VM一起使用時如何使該設(shè)備正常工作。
如果使用Windows,則需要在VirtualBox管理器中為要Docker訪問的設(shè)備添加任何USB規(guī)則。為此,您可以通過運(yùn)行以下命令來停止VM:
host:~$ docker-machine stop default
打開VirtualBox Manager,然后根據(jù)需要添加帶有過濾器的USB支持。
啟動boot2docker VM:
host:~$ docker-machine start default
由于USB設(shè)備已連接到boot2docker VM,因此需要從該計算機(jī)上運(yùn)行命令。使用VM打開終端并運(yùn)行docker run命令:
host:~$ docker-machine ssh
docker@default:~$ docker run -it --privileged ubuntu bash
請注意,以這種方式運(yùn)行命令時,將僅捕獲以前連接的USB設(shè)備。僅當(dāng)您希望它與容器啟動后連接的設(shè)備一起使用時,才需要volumes標(biāo)志。在這種情況下,您可以使用:
docker@default:~$ docker run -it --privileged -v /dev:/dev ubuntu bash
請注意,在某些情況下,我不得不使用/dev而不是/dev/bus/usb來捕獲類似的設(shè)備/dev/sg2。我只能假設(shè)對于/dev/ttyACM0或這類設(shè)備也是如此/dev/ttyUSB0。
docker run命令也將與Linux主機(jī)一起使用。
- 3 回答
- 0 關(guān)注
- 4465 瀏覽
添加回答
舉報