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