Docker 介紹
Docker 是一個開源的容器化平臺,用于打包、分發(fā)和運行應(yīng)用程序。它通過將應(yīng)用及其所有依賴打包到獨立的容器中,確保應(yīng)用在不同環(huán)境中一致運行。Docker 提供快速部署、隔離性強(qiáng)和高效的資源利用,廣泛用于開發(fā)、測試和生產(chǎn)環(huán)境中。
Android in Docker 介紹
宿主機(jī)系統(tǒng)中通過 docker 運行 Android 容器。利用 docker 的特性,我們可以將宿主機(jī)的設(shè)備節(jié)點映射到 Android 容器中,使容器和宿主機(jī)共用一套 kernel,從而實現(xiàn)Android 容器通過直通的方式調(diào)用 RK 平臺相關(guān)的硬件加速單元:GPU、VPU、NPU、RGA 等。

Android in Docker 部署
宿主機(jī)部署
Firefly 整理多款機(jī)型對應(yīng)的宿主機(jī)固件,用戶只需根據(jù)所使用的具體機(jī)型選擇匹配的固件版本,并進(jìn)行升級,即可輕松完成宿主機(jī)的部署工作。

Android 容器部署
1、若宿主機(jī)已連接互聯(lián)網(wǎng),可通過 SCP 命令將 container 文件夾高效地傳輸至 Linux 宿主機(jī)的 /userdata/ 目錄中
scp -r ./AIC/container root@xxx.xx.xx.xx:/userdata/
2、進(jìn)入容器文件夾
cd /userdata/container
3、初次啟動時,執(zhí)行初始化腳本
./aic.sh-i
4、等待初始化完成后,執(zhí)行
./aic.sh -r <安卓鏡像.tgz> <容器數(shù)量>
演示:
注意:網(wǎng)絡(luò)默認(rèn)是采用端口映射方式。
<宿主ip>:1100 --> <容器0>:5555<宿主ip>:1101 --> <容器1>:5555......
宿主機(jī)固件和 Android 容器均已上傳至以下鏈接,請點擊此處下載。提取碼:1234
注:如需對宿主機(jī)或 Android 容器進(jìn)行更深入的定制,可以聯(lián)系業(yè)務(wù)團(tuán)隊獲取完整的源代碼。
調(diào)試及使用
容器管理
1、查看所有容器(包括已停止的容器)
docker ps -a
2、刪除 Android 容器
docker rm -f
3、停止正在運行的容器
docker stop
4、啟動一個已停止的容器
docker start
容器調(diào)試
1、進(jìn)入一個正在運行的容器
docker exec -it sh
2、看容器的 CPU 和內(nèi)存使用情況
docker stats
3、查看所有容器(包括已停止的容器)
docker cp 本地文件 容器ID:容器內(nèi)路徑
4、局域網(wǎng)其他設(shè)備移動文件至 docker 容器
adb connect 宿主機(jī)IP:端口號adb -s 172.16.11.92:1102 push 本地文件 容器ID:容器內(nèi)路徑
注:Firefly默認(rèn) docker 網(wǎng)絡(luò)部署為 docker0 網(wǎng)橋方式,即端口映射方案,如自行修改使用 macvlan 網(wǎng)絡(luò)則 connect 命令需使用容器 IP 加端口號 5555
adb connect 容器IP:5555
5、網(wǎng)絡(luò)畫面?zhèn)鬏?/p>
使用開源的 scrcpy:
https://github.com/Genymobile/scrcpy
scrcpy -s 容器IP : 端口號
性能測試
設(shè)備:ITX-3588J(16+128)
固件:ITX-3588J_Ubuntu20.04-Minimal-r3104_v1.3.0c_241107.img
ITX-3588J 上同時運行 6個 Android 系統(tǒng)
1、讓宿主機(jī)運行在性能模式
# 出現(xiàn)一個 Invalid argument 是正常的,不用管root@firefly:~# echo performance | tee $(find /sys/devices -name *governor)performancetee: /sys/devices/system/cpu/cpuidle/current_governor: Invalid argument
2、保持 CPU 的良好散熱,保持溫度在 80 攝氏度以下工作
root@firefly:~# cat /sys/class/thermal/*/temp54538563845638455461526925176952692root@firefly:~# cat /sys/bus/cpu/devices/cpu*/cpufreq/cpuinfo_cur_freq18000001800000180000018000002256000225600022560002256000
3、游戲測試演示:
在實際測試中,我們發(fā)現(xiàn) RK3588 處理器在最高性能狀態(tài)下,通過AIC(Android in Docker)技術(shù)能夠高效并行運行多個 Android 系統(tǒng)。然而,當(dāng)同時運行 6個 Android 容器時,由于它們共享 CPU 資源,若這些容器對 CPU 的需求同時激增,可能會對用戶體驗造成影響。相比之下,運行 4個 Android 容器時,CPU 的壓力較為適中,各容器間的影響也相對較小。因此,根據(jù)具體的使用場景和需求,可以靈活決定開啟容器的數(shù)量。
在 AIC 技術(shù)的卓越加持下,F(xiàn)irefly 服務(wù)器潛能得到全面釋放,使用搭載 RK3588 處理器的 Firefly B1 服務(wù)器,在 10 節(jié)點配置下,每節(jié)點獨立運行 6 個 Android 系統(tǒng),實現(xiàn)了 60個 Android 系統(tǒng)的并行操作,彰顯 AIC 技術(shù)的強(qiáng)大實力。升級至 72 節(jié)點的 B2 服務(wù)器,更是高達(dá) 432 個系統(tǒng),顯著拓展了運行 Android 的容器數(shù)量。
-
Android
+關(guān)注
關(guān)注
12文章
3973瀏覽量
130201 -
開源
+關(guān)注
關(guān)注
3文章
3676瀏覽量
43804 -
Docker
+關(guān)注
關(guān)注
0文章
515瀏覽量
12946
發(fā)布評論請先 登錄
如何使用 Docker容器化技術(shù)
ARM平臺實現(xiàn)Docker容器技術(shù)
ARM平臺實現(xiàn)Docker容器技術(shù)
基于docker技術(shù)的工業(yè)App架構(gòu)是如何構(gòu)成的
Docker是什么?
RK3399 docker無法加載IMAGE ID是為什么?
docker基礎(chǔ)知識和使用bmnnsdk時的docker常用命令
Docker—簡介與鏡像用法

Docker鏡像的詳細(xì)講解
docker 搜索鏡像,docker查看鏡像詳細(xì)信息(docker下載鏡像命令)
docker核心組件有哪些
ARM平臺實現(xiàn)Docker容器技術(shù)

評論