1.導(dǎo)讀:
聯(lián)網(wǎng)公司都不得不面對的問題,特別是各種版本的迭代之后,不同版本環(huán)境的兼容,對運(yùn)維人員都是考驗(yàn)。Docker只所以發(fā)展如此迅速,也因其對這些情況給出了一個標(biāo)準(zhǔn)化的解決方案。本文將以我們武漢萬象奧科電子有限公司的i.MX6ULL評估套件作為平臺,搭建支持docker的嵌入式環(huán)境。
2.初始Docker
Docker是基于Go語言實(shí)現(xiàn)的開源容器項(xiàng)目,設(shè)想這么一個情況,應(yīng)用層、服務(wù)等操作需要在多種不同的嵌入式平臺搭建,每移植到一個平臺上時,需要為每個平臺搭建環(huán)境,例如安裝Apache、MySQL、PHP等環(huán)境,每次引入新平臺都是一輪耗時耗力的工程。
而Docker提供一種更為聰明便捷的方法,通過容器來打包應(yīng)用、解耦應(yīng)用和運(yùn)行平臺。意味著導(dǎo)入新平臺時,只需新平臺內(nèi)運(yùn)行docker容器,就可以快速完成部署。
本節(jié)簡單介紹一下Docker的三大核心概念,更詳細(xì)請根據(jù)網(wǎng)上資料專業(yè)學(xué)習(xí)Docker知識。
表1.1 Dokcer的三大核心概念
目前最大的公開倉庫是官方提供的Docker Hub,其中存放著數(shù)量龐大的鏡像供用戶下載。同時國內(nèi)的企業(yè)也逐步構(gòu)建起自己的業(yè)務(wù)鏡像,如華為云的IoT邊緣 IoTEdge、阿里云等服務(wù),都逐漸去底層差異化。
當(dāng)用戶搭建好自己的鏡像后,只需push命令上傳到指定的倉庫。在新的機(jī)器上,只需pull命令將鏡像從倉庫下載下來。
3.ARM硬件環(huán)境
本文檔使用我司的HD-IMX6ULL-MB評估套件來實(shí)現(xiàn)docker環(huán)境,硬件產(chǎn)品如下所示。
硬件平臺環(huán)境條件如下所示。
表1.2 硬件平臺資源
4.燒錄固件
使用我司特別提供的固件(可快速安裝docker),快速部署驗(yàn)證。固件包為“mfgtools_imx6ull_emmc_ubuntu18.04_filesystem_全開源核心板.zip”,需要驗(yàn)證的客戶可直接聯(lián)系我司的銷售工程師獲取即可。內(nèi)容如下所示。
燒錄步驟參考用戶手冊即可,這里不再贅述。
5.Ubuntu搭建docker操作
上述固件包內(nèi)已經(jīng)是Ubuntu系統(tǒng)鏡像,我們只需在此環(huán)境下直接使用命令安裝docker環(huán)境即可。系統(tǒng)安裝docker環(huán)境的操作步驟如下所示。
首先,燒錄后的第一次上電的板卡需要更新內(nèi)部的軟件版本,命令如下所示。update更新失敗注意檢測網(wǎng)絡(luò)狀態(tài)和date日期。部分軟件可能體積過大,需要耐心等待。
然后清除舊版本的docker軟件,再重新安裝docker.io。
啟動docker。
使能docker開機(jī)自啟動。
檢查docker運(yùn)行狀態(tài)。
6.獲取鏡像
運(yùn)行此命令可以從Docker Hub上下載現(xiàn)成鏡像。
查看本地的鏡像文件命令如下所示。
7.創(chuàng)建容器
如上文所說,鏡像可以看作一個只讀模板,而容器就是加載模板后運(yùn)行的沙盒環(huán)境,具有運(yùn)行時所需的可寫文件層、應(yīng)用程序也處于運(yùn)行狀態(tài)。概念上可能會與PC端常用的虛擬機(jī)混淆,虛擬機(jī)是包括內(nèi)核、應(yīng)用運(yùn)行環(huán)境和其他系統(tǒng)環(huán)境的,而Docker容器就是獨(dú)立運(yùn)行的一個或一組應(yīng)用以及他們必須的運(yùn)行環(huán)境。
創(chuàng)建容器時,需要指定使用的鏡像文件,這里使用上面用pull指令下載下來的鏡像文件,創(chuàng)建命令如下所示。
查看容器狀態(tài),命令如下所示,每個容器都有自己的CONTAINER_ID與NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于簡便使用)。
8.啟動容器
容器創(chuàng)建后,通過CONTAINER_ID與NAMES來操作容器,啟動命令如下所示。
使用NAMES來操作容器的命令如下所示。
上文所說,容器是運(yùn)行一個或一組進(jìn)程,docker ps命令里的COMMAND即為容器運(yùn)行的進(jìn)程,當(dāng)前顯示bash,即進(jìn)入命令交互進(jìn)程。通過以下命令進(jìn)入容器內(nèi)部。
進(jìn)入后,可以操作容器內(nèi)的命令,如下所示。
通過exit命令,可退出容器,退出后容器就處于停止?fàn)顟B(tài),如下所示。
-
Docker
+關(guān)注
關(guān)注
0文章
512瀏覽量
12718
發(fā)布評論請先 登錄
重磅新品登場!第二代高性能分布式IO模塊、i.MX6ULL核心板、NXP工業(yè)級單板機(jī)

NXP i.MX 91開發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件

ECB20-PG6Y28C-I 單板機(jī)深度測評報告 ——工業(yè)級嵌入式開發(fā)的強(qiáng)力助手
如何在i.MX6ULL睡眠時停止刷新LCD?
如何維護(hù)i.MX6ULL的安全內(nèi)核?
如何在i.MX6ULL定制板上啟用IO Expander PCA6416A的控制?
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之USB_OTG
飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之USB_OTG
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之ENET
飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之ENET
【新品】i.MX6ULL工業(yè)嵌入式核心板!NXP低功耗MPU,LCD顯示

在NXP源碼基礎(chǔ)上如何適配ELF 1開發(fā)板的UART功能

【米爾NXP i.MX 93開發(fā)板試用評測】04.OpenWRT的構(gòu)建-開始編譯
使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電

評論