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