用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找到不能在空壳镜像内执行的原因吧。