tl;dr
眾所周知,Docker環(huán)境使應(yīng)用具有天然的隔離性锦爵,且將應(yīng)用與Host OS解耦辐脖,讓應(yīng)用程序更加便于移動(dòng)部署。
這次希望在Raspberry Pi 3上也使用Docker來部署僵娃,經(jīng)過多次篩選概作,最終選擇了HypriotOS做為Host OS
選擇合適的Host OS
Raspberry Pi 3是基于ARM架構(gòu)的板子,標(biāo)準(zhǔn)的x86環(huán)境的OS是不能使用的默怨,所以選擇Host OS就是基于如下因素:
- 支持ARM架構(gòu)
- 原生支持Docker讯榕,刷到TF卡就可以用
根據(jù)這個(gè)標(biāo)準(zhǔn)選出來三個(gè)OS,各優(yōu)缺點(diǎn)如下:
- RancherOS:原生支持Docker匙睹,包括PID1都封裝成Docker愚屁,非常喜歡的一種模式。但是痕檬,不支持Raspberry Pi 3上的WIFI模塊霎槐,一個(gè)小的IoT設(shè)備拖一根網(wǎng)線實(shí)在是礙眼,只能放棄梦谜。
- ResinOS:同樣是原生支持Docker的OS丘跌,而且不只支持Raspberry Pi的板子,還可以在很多開源的板子上運(yùn)行唁桩。但是闭树,底層HOST OS只能運(yùn)行一個(gè)Docker容器,這個(gè)讓我很呵呵荒澡。
- HypriotOS:最后選的是這個(gè)报辱,原生Docker,支持WIFI
HypriotOS安裝
HypriotOS的FAQ单山,建議先簡(jiǎn)單看一下碍现。
主要參考文檔: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)啟動(dòng)都會(huì)按這個(gè)配置文件的要求配置系統(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,并啟動(dòng)完成安裝