亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Docker-一種訪問主機USB或串行設備的方法?

Docker-一種訪問主機USB或串行設備的方法?

一只萌萌小番薯 2019-12-09 09:22:57
上次我檢查時,Docker沒有任何方法允許容器訪問主機串行或USB端口。有沒有辦法做到這一點?
查看完整描述

3 回答

?
慕田峪9158850

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是不安全的 ,應謹慎處理。


查看完整回答
反對 回復 2019-12-09
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

對于當前版本的Docker,您可以使用該--device標志來實現所需的功能,而無需授予對所有USB設備的訪問權限。


例如,如果您只想/dev/ttyUSB0在Docker容器中進行訪問,則可以執行以下操作:


docker run -t -i --device=/dev/ttyUSB0 ubuntu bash


查看完整回答
反對 回復 2019-12-09
?
智慧大石

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主機一起使用。


查看完整回答
反對 回復 2019-12-09
  • 3 回答
  • 0 關注
  • 4494 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號