13

我有一个包含在 Docker 文件中的嵌入式系统开发映像。为了刷新代码,我需要通过 USB 串行(例如/dev/ttyACM0)连接到节点。

对于 Docker,我使用了新的绑定挂载功能(请参阅https://github.com/dotcloud/docker/issues/111-b最近的-v选项)将主机 devfs 公开给容器。但是,每当我连接(“cat /d/ttyACM0”,d 是绑定到 dev 的安装)到设备时,我都会得到“不允许操作”。是否不仅可以绑定挂载,还可以在容器中实际使用字符设备?

是否有可能通过 udev 规则公开特定的开发人员?

4

3 回答 3

4

目前,这在 Docker 中是不可能的。但是,我们正在研究一种“特权”模式,允许容器访问 USB 或 GPU 等设备。

于 2013-07-22T17:17:39.177 回答
3

--device选项现在允许将 a 暴露/dev给容器,例如:

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

(我从这个 Stack Overflow 答案中找到。)

于 2016-08-03T08:58:54.820 回答
0

虽然无法通过 Docker 本身(请参阅前面的答案)直接在正在运行的容器上使用 lxc-cgroup 似乎对我有用:

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

166 代表 ttyACM,设备类。

Docker id 必须是完整的(通过 Docker 检查“ID”)。

于 2013-07-23T10:23:16.287 回答