tl;dr
眾所周知,Docker環(huán)境使應用具有天然的隔離性,且將應用與Host OS解耦,讓應用程序更加便于移動部署。
這次希望在Raspberry Pi 3上也使用Docker來部署,經(jīng)過多次篩選,最終選擇了HypriotOS做為Host OS
選擇合適的Host OS
Raspberry Pi 3是基于ARM架構(gòu)的板子,標準的x86環(huán)境的OS是不能使用的,所以選擇Host OS就是基于如下因素:
- 支持ARM架構(gòu)
- 原生支持Docker,刷到TF卡就可以用
根據(jù)這個標準選出來三個OS,各優(yōu)缺點如下:
- RancherOS:原生支持Docker,包括PID1都封裝成Docker,非常喜歡的一種模式。但是,不支持Raspberry Pi 3上的WIFI模塊,一個小的IoT設備拖一根網(wǎng)線實在是礙眼,只能放棄。
- 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目錄下的配置模板,并根據(jù)需要修改如下文件:
- wlan-user-data.yaml:用于Cloud-Init做系統(tǒng)的配置初始化,不只是第一次,每次系統(tǒng)啟動都會按這個配置文件的要求配置系統(tǒng)環(huán)境)
- no-uart-config.txt:用于配置Raspberry的物理組件的參數(shù)
- 下載flash配置腳本
curl -O https://raw.githubusercontent.com/hypriot/flash/master/$(uname -s)/flash
chmod +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,并啟動完成安裝