用go语言在树莓派内运行dht11温湿度传感器并将go程序制作成docker镜像使用,一个在docker镜像内一个在宿主机上运行实现两个程序读取数值的程序,其实没有什么实际意义。
在这里插入图片描述将DHT11的针脚插的树莓上,pin插在4上。
在这里插入图片描述通过VNC连接到树莓派上
在这里插入图片描述需要从github上下载支持go的DHT11源码https://github.com/d2r2/go-dht
安装go get -u github.com/d2r2/go-dht
main函数稍作修改,加入一个循环并设置5秒输出一次温湿度。
在这里插入图片描述执行程序就能看到输出了温湿度值。
在这里插入图片描述接下来我们将dht11编译后的go程序制作成docker镜像
vim dockerfile
FROM centos
ADD dht11 /dht11
CMD ["/dht11"]
docker build -t dht11:v .
在这里插入图片描述我们需要将sys这个目录挂载到docker内,否则无法读取到pin值
docker run -it -d -v /sys:/sys --name dht11 dht11:v1
在这里插入图片描述我们进入到docker镜像内看看
docker attach dht11
在这里插入图片描述本来一开始是想使用scratch作为镜像这样镜像大小只有3M左右,但是试了几次不成功包括busybox和apline也是不行,后来使用golang镜像成功了,又使用了centos也能成功,继续学习go和docker找到不能在空壳镜像内执行的原因吧。