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/raspihttps://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。