docker集装箱内的I2C
我正在尝试在Docker容器内的树莓派上使用i2c引脚。 我安装所有我的模块使用运行,但是当我使用CMD来运行我的Python程序,我得到一个错误,说
Trackback (most recent call last): file "test.py", line 124, in <module> bus = smbus.SMBus(1) IOError: [Errno 2] No such file or directory
如果我在我的覆盆子pi上运行这个,而不是在我的容器,它运作良好。 但是,当我closures我的覆盆子pi上的i2c引脚时,运行时会出现同样的错误。 所以我知道这与我的i2c引脚被激活。 有谁知道如何解决这个问题?
作为安全预防措施,系统设备在Docker容器内不会默认暴露。 您可以使用--device
选项将特定设备公开给docker run
,如下所示:
docker run --device /dev/i2c-0 --device /dev/i2c-1 myimage
您可以使用--privileged
标志删除所有限制:
docker run --privileged myimage
这会将所有的/dev
都暴露给你的容器,并删除其他限制(例如,你将能够改变容器中的networkingconfiguration并装载新的文件系统)。