是否有可能将USB设备暴露给lxc / docker容器?

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

在Docker中,我使用了新的绑定挂载function(请参阅https://github.com/dotcloud/docker/issues/111,-b或latedly?-v选项)将主机devfs公开给容器。 但是,每当我连接(“猫/ d / ttyACM0”,d是绑定安装到开发)到设备我得到“操作不允许”。 是否有可能不仅绑定挂载,而是实际使用容器中的字符设备?

也许甚至有可能通过udev规则公开特定的开发者。

--device选项现在允许将一个开发者暴露给一个容器,例如:

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

(从这个答案find)

在目前这一点,docker工人是不可能的。 但是,我们正在研究一种允许容器访问USB或GPU等设备的'priviledge'模式。

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

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

166代表ttyACM,即设备类

docker编号需要是完整的(通过docker检查“ID”)