上一篇树莓派也跑Docker和.NET Core有对树莓派作简单的介绍。包括系统的烧录、基本的设置、docker的安装、.net core的运行等。有人问我是否是必定要跑docker,答案确定是否认的。我之因此用docker,彻底是由于它的便利(带环境)、对系统无污染和方便系统资源的查看和控制。本篇文章继续分享下我对树莓派的使用。html
我说在树莓派上跑mysql你还不信。mysql
sudo docker run --restart=always \ -p 3306:3306 \ --name mysql \ -v $PWD/mysql/conf:/etc/mysql/conf.d \ -v $PWD/mysql/logs:/logs \ -v $PWD/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=mysqlpassword \ -d hypriot/rpi-mysql:5.5
--restart=always #容器自启动 3306 #数据库端口 -v $PWD/conf:/etc/mysql/conf.d #配置文件挂载路径 MYSQL_ROOT_PASSWORD=mysqlpassword #数据库密码
sudo docker run --restart=always --name redis \ -p 6379:6379 \ -v $PWD/redis/data:/data \ -d arm32v7/redis:3.2.10 redis-server --appendonly yess
有了.net core、mysql和redis,若是再能跑一个git服务器那不就吊炸天了。是的,树莓派安装gogs毫无压力。有了本身的代码管理服务器,不再会由于GitHub访问慢而烦恼了,也不会由于某Git的广告而不爽了。linux
docker run --name=gogs -p 122:22 \ -p 1080:3000 \ -v /var/gogs:/data gogs/gogs-rpi
其中1080是浏览器访问端口,你也能够映射到80。122是ssh提交代码的端口。
注意:gogs须要依赖于mysql,第一次启动会引导你填入数据库相关信息。后面若是重启了树莓派,记得先启动mysql,再启动gogs,否则不能正常访问。nginx
上面有了应用,有了数据库,还有了代码管理服务器,可咱们树莓派总归是在一个局域网内。离开了这个网络上面说的那些功能好像就没什么用了。那咱们有没有办法让咱们的树莓派变成真正的服务器呢,答案是确定的。我相信你们刚接触编程的时候,都幻想过本身写的网站能直接给别人访问。那个时候应该大多折腾过花生壳什么的,那就是个内网穿透的技术。只是别人提供了免费的服务器中转了下,速度也是慢得感人。
今天咱们来本身利用frp软件实现内外穿透,固然仍是须要服务器的 (没有服务器的同窗,能够先借朋友的玩玩) 。git
下载地址(各平台的都有):https://github.com/fatedier/frp/releases
由于咱们是树莓派,能够下载最新版 frp_0.29.0_linux_arm.tar.gz(装客户端)和 frp_0.29.0_windows_amd64.zip(windows服务器)或者frp_0.29.0_linux_amd64.tar.gz(linux服务器)github
首先把frp_0.29.0_linux_amd64.tar.gz上传到服务器,解压,跳转到目录里,编辑frps.iniweb
[common] bind_addr = 0.0.0.0 bind_port = 7000 auto_token = token
而后运行./frps运行,启动服务端监听。redis
把frp_0.29.0_linux_arm.tar.gz上传到树莓派,解压,跳转到目录里,编辑frpc.inisql
[common] server_addr = 服务器ip server_port = 7000 auto_token = token [git] type = tcp local_ip = 127.0.0.1 local_port = 122 remote_port = 8000 [web] type = tcp local_ip = 127.0.0.1 local_port = 1080 remote_port = 8001
而后运行启动./frpcdocker
而后就能够外网访问了,www.服务器ip:8001 就能够访问git服务器了。
注意:若是是云服务器记得把对应的8000、7000、8001端口加入到安全组里面,否则会被拦截掉。
frp的详细用法请参考:https://www.cnblogs.com/sanduzxcvbnm/category/1171545.html
#安装nginx docker run -d -p 80:80 --name nginx arm32v7/nginx:1.16 #dokcer仪表盘管理 docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer:arm #一些其它树莓派的docker应用 https://hub.docker.com/u/arm32v7/ https://hub.docker.com/u/hypriot?page=1 https://cloud.docker.com/u/bennyzhao/repository/docker/bennyzhao/quartzui
能够作物联网数据的边缘计算啊,如设备的数据采集、监控预警、数据分析等等。再买点传感器作个简陋版“小爱同窗”也不是很难,甚至遥控汽车玩具什么的,能想的到的也没什么是作不到的。
24小时不关机,零噪音,一直开心的运行着。
推荐一个开源物联网组件:https://github.com/zhaopeiym/IoTClient,demo下载