3 回答

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

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

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