Docker访问Raspberry Pi GPIO引脚
在Raspberry Pi 2上运行Docker时,如何将GPIO引脚暴露给Docker容器?
您可能会使用docker volumes
来公开sysfs
接口。 例如,像这样的东西:
docker run -v /sys:/sys fedora bash
这将在主机上将/sys
暴露在容器中的/sys
,并且您将有权访问/sys/class/gpio
层次结构。
如果你使用的是不使用sysfs
接口访问GPIO引脚的代码,你需要暴露在容器内部使用的任何设备节点,可能有类似--device
docker run
的--device
参数。
我将使用这个图像: https : //github.com/acencini/rpi-python-serial-wiringpi ,作为一个基本的形象。 在这里,你可以很容易地访问与Python。 或者你可以决定下载节点到图像上,并使用这两个npm库来通过JavaScript访问
https://github.com/bryan-m-hughes/raspi – https://github.com/bryan-m-hughes/raspi-gpio
整个事情的基础是wiringPi,你可以在Dockerfile中看到,而且当你第一次运行镜像的时候你必须运行这个命令:
docker run --device /dev/ttyAMA0:/dev/ttyAMA0 --device /dev/mem:/dev/mem --privileged -ti acencini/rpi-python-serial-wiringpi /bin/bash
这里最重要的是你打开dev端口和mem来布线来访问它。 wiringPi需要特权访问/ dev / mem。