我正在尝试在 docker 容器内的树莓派上使用 i2c 引脚。我使用 RUN 安装所有模块,但是当我使用 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
如果我在我的树莓派上运行它而不是在我的容器中运行它,它就可以正常工作。但是当我关闭树莓派上的 i2c 引脚时,运行它时会出现同样的错误。所以我知道这与我的 i2c 引脚被激活有关。有谁知道如何解决这个问题?
作为安全预防措施,默认情况下,系统设备不会暴露在 Docker 容器内。你可以曝光specific使用以下方法将设备添加到您的容器--device
选项docker run
, as in:
docker run --device /dev/i2c-0 --device /dev/i2c-1 myimage
您可以使用以下命令删除所有限制--privileged
flag:
docker run --privileged myimage
这将暴露所有/dev
到您的容器,并删除其他限制(例如,您将能够更改容器中的网络配置并挂载新的文件系统)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)