2013-07-22 96 views
10

我有一個docker文件中包含的嵌入式系統開發圖像。爲了刷新代碼,我需要通過USB串行連接到節點(例如/ dev/ttyACM0)。是否有可能將USB設備暴露給lxc/docker容器?

使用docker我使用新的綁定掛載功能(請參閱https://github.com/dotcloud/docker/issues/111,-b或latedly?-v選項)將主機devfs公開到容器。但是,無論何時我連接(「cat/d/ttyACM0」,d是綁定安裝到dev)到設備,我都會得到「操作不允許」。是否有可能不僅綁定掛載,而且實際使用容器中的字符設備?

它可能甚至可能通過udev規則公開特定的開發者。

回答

2

--device選項現在允許暴露dev的一個容器,例如:

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

(從this SO answer找到。)

+0

謝謝 - 我在這裏複製了重要部分。我相信我回答了至少部分問題(「是否有可能不僅綁定掛載,而且實際使用容器中的字符設備?」)。 – tuomassalo

4

在目前,docker無法做到這一點。但是,我們正在研究一種允許容器訪問USB或GPU等設備的'priviledge'模式。

0

雖然無法通過泊塢窗本身(參見前面的答案)直接使用LXC-cgroup中運行的容器上,似乎這樣的伎倆對我來說:

sudo lxc-cgroup -n 0dd4c652d0740e5ddb6f80e6f2ec2c52dd6435b22c8114c000c58ca9703ebc62 devices.allow "c 166:* rwm" 

166代表ttyACM,設備類

的搬運工ID必須是完整的一個(通過搬運工檢查「ID」)

+0

BTW:增加config.lxc似乎並沒有爲我工作 – till

+0

請注意,這是危險的靠碼頭工人和LXC同時命令。雖然docker使用LXC,但它可能不會在未來,並且據我所知,沒有兼容性保證。 – qkrijger

相關問題