tl;dr
众所周知,Docker环境使应用具有天然的隔离性,且将应用与Host OS解耦,让应用程序更加便于移动部署。
这次希望在Raspberry Pi 3上也使用Docker来部署,经过多次筛选,最终选择了HypriotOS做为Host OS
选择合适的Host OS
Raspberry Pi 3是基于ARM架构的板子,标准的x86环境的OS是不能使用的,所以选择Host OS就是基于如下因素:
支持ARM架构
原生支持Docker,刷到TF卡就可以用
根据这个标准选出来三个OS,各优缺点如下:
RancherOS:原生支持Docker,包括PID1都封装成Docker,非常喜欢的一种模式。但是,不支持Raspberry Pi 3上的WIFI模块,一个小的IoT设备拖一根网线实在是碍眼,只能放弃。
ResinOS:同样是原生支持Docker的OS,而且不只支持Raspberry Pi的板子,还可以在很多开源的板子上运行。但是,底层HOST OS只能运行一个Docker容器,这个让我很呵呵。
HypriotOS:最后选的是这个,原生Docker,支持WIFI
HypriotOS安装
HypriotOS的FAQ,建议先简单看一下。
主要参考文档:https://github.com/hypriot/flash
在HypriotOS Github的releases模块里下载最新的Image
下载https://github.com/hypriot/flash的Sample目录下的配置模板,并根据需要修改如下文件:
wlan-user-data.yaml:用于Cloud-Init做系统的配置初始化,不只是第一次,每次系统启动都会按这个配置文件的要求配置系统环境)
no-uart-config.txt:用于配置Raspberry的物理组件的参数
下载flash配置脚本
curl -O https://raw.githubusercontent.com/hypriot/flash/master/$(uname -s)/flashchmod +x flash
刷IMAGE到TF卡
flash --userdata sample/wlan-user-data.yaml --bootconf sample/no-uart-config.txt hypriotos-rpi-v1.7.1.img
把TF卡插入Raspberry,并启动完成安装
作者:mst7
链接:https://www.jianshu.com/p/0276f1cfc276