
Docker-Android 快速上手指南一條命令拉起容器化 Android 模擬器【免費下載鏈接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server項目地址: https://gitcode.com/GitHub_Trending/do/docker-androidDocker-Android 把 Android 模擬器整個打包進 Docker 鏡像一條docker run就能在服務器上開出 Galaxy S10、Nexus 7 等真機外觀的模擬器支持 noVNC 網頁查看、Appium UI 測試和 adb 外部控制。適合需要無頭環境跑安卓測試、CI 集成或演示的測試工程師、DevOps 和移動端開發者。二、它解決什么問題本機裝 Android Studio 模擬器占幾 GB 磁盤還得跟 IDE 搶 CPU 和 GPU。CI 機器上想跑 UI 自動化卻發現 CI 是 Linux 裸機裝模擬器環境又慢又不穩。多臺設備、多版本并行測試時本機根本開不起。Docker-Android 的做法是模擬器 Android SDK noVNC adb 全部預裝在鏡像里按 Android 版本區分 tag9.0 到 14.0拉下來即用跑完刪掉不占地方。三、開始前需要準備什么硬件和系統要求如下提前確認可以省掉后面大量排錯時間項目要求說明操作系統UbuntuLinux鏡像基于 Ubuntu 構建只保證在 Ubuntu 宿主上運行虛擬化CPU 支持 KVM 且已開啟容器內模擬器靠硬件加速跑沒有 KVM 基本起不來Docker已安裝并可正常使用docker run無需其他依賴macOS / Windows需要套一層 Ubuntu 虛擬機官方鏡像不支持直接在 Mac/Windows 上跑驗證 KVM 是否可用sudo apt install cpu-checker kvm-ok輸出KVM acceleration can be used才算通過。四、最短路徑跑起來一條命令啟動 Android 11.0 Samsung Galaxy S10 模擬器docker run -d -p 6080:6080 \ -e EMULATOR_DEVICESamsung Galaxy S10 \ -e WEB_VNCtrue \ --device /dev/kvm \ --name android-container \ budtmo/docker-android:emulator_11.0參數逐個看-d后臺運行容器。-p 6080:6080把容器內 noVNC 的 6080 端口映射出來供瀏覽器訪問。-e EMULATOR_DEVICESamsung Galaxy S10指定設備型號和外觀皮膚支持 S10/S9/S8/S7/S6、Nexus 4/5/7/One/S、Pixel C 等。-e WEB_VNCtrue啟用網頁端查看不開就只能用 VNC 客戶端連 5900 端口。--device /dev/kvm把宿主機的 KVM 設備透傳進容器硬件加速的關鍵。--name android-container給容器起名后面docker exec、docker stop都靠它。budtmo/docker-android:emulator_11.0鏡像 tag按 Android 版本選emulator_9.0到emulator_14.0都有。鏡像里預置了這些設備型號的皮膚文件位于 mixins/configs/devices/EMULATOR_DEVICE的值必須和列表里的名字完全一致。等 1~2 分鐘首次啟動模擬器較慢瀏覽器打開http://localhost:6080你會看到模擬器桌面上立著一臺 Galaxy S10能點能滑。隨時查啟動進度docker exec -it android-container cat device_status狀態變成boot_completed即代表安卓系統啟動完成。五、常用配置速查核心開關都是環境變量完整清單見 CUSTOM_CONFIGURATIONS.md。VNC / 網頁訪問變量作用示例WEB_VNC是否開啟網頁端默認端口 6080-e WEB_VNCtrueWEB_VNC_PORT改 noVNC 端口-e WEB_VNC_PORT6081配合-p 6081:6081VNC_PASSWORD給 VNC 連接加密碼-e VNC_PASSWORDthisissecretURL 上還能加參數http://localhost:6080/?autoconnecttrueview_onlytrue可直接自動連接并設為只讀方便給別人看。模擬器本體變量作用默認值EMULATOR_NAME自定義模擬器名字設備名 安卓版本EMULATOR_DATA_PARTITION數據分區大小550m裝 app 多就調大如900mEMULATOR_NO_SKIN去掉設備外殼皮膚省一點渲染開銷falseEMULATOR_ADDITIONAL_ARGS透傳任意參數給 android emulator 命令行見 Android 官方文檔日志與測試變量作用WEB_LOG/WEB_LOG_PORT通過網頁 UI 看容器內日志文件默認端口 9000APPIUM/APPIUM_ADDITIONAL_ARGS開啟 Appium Server開 4723 端口參數可透傳數據持久化默認行為是容器重啟后模擬器數據清空。需要保留裝的 app、賬號等狀態時把數據目錄掛成命名卷docker run -v data:/home/androidusr budtmo/docker-android:emulator_11.0六、跑起來之后能干什么adb 外部控制啟動時加-p 5554:5554 -p 5555:5555宿主機執行adb connect 容器IP:5555即可把容器內模擬器當成 adb 設備裝 apk、抓日志、發消息全都能做。細節見 USE_CASE_CONTROL_EMULATOR.md。模擬短信docker exec -it android-container adb emu sms send 號碼 消息做 OTP 驗證測試很方便。見 USE_CASE_SMS.md。CI 集成Jenkins / 云主機上無頭跑見 USE_CASE_JENKINS.md 和 USE_CASE_CLOUD.md。Appium UI 測試加-p 4723:4723 -e APPIUMtrue即可見 USE_CASE_APPIUM.md。七、容易踩的坑坑 1容器起不來 / 模擬器卡在啟動。九成是 KVM 沒透傳。先跑kvm-ok確認宿主機支持再確認docker run帶了--device /dev/kvm。Windows 用戶在 WSL2 里還需要額外配置把用戶加進kvm組、在.wslconfig開nestedVirtualizationtrueREADME 的 WSL2 Hardware acceleration 一節有完整步驟。坑 2瀏覽器打不開localhost:6080。端口映射漏了或端口被占。確認啟動命令里有-p 6080:6080端口沖突就換WEB_VNC_PORT一起改兩邊保持一致。另外WEB_VNCtrue忘了設的話網頁入口根本不存在。坑 3重啟容器后 app 全沒了。這是默認設計每次全新設備不是 bug。要么接受跑完即焚要么按上面數據持久化一節掛卷到/home/androidusr。坑 4裝了幾個稍大的 app 就 OOM 或分區滿。默認數據分區只有 550m用EMULATOR_DATA_PARTITION900m調大即可。延伸閱讀倉庫內文檔都在 documentations/ 目錄按使用場景組織USE_CASE_BUILD_ANDROID_PROJECT.md用鏡像編譯安卓工程USE_CASE_APPIUM.mdAppium 自動化測試接入USE_CASE_CLOUD.md部署到 Azure / AWS / GCPDOCKER-ANDROID-PRO.mdPro 版功能對比代理、root、headless 等CUSTOM_CONFIGURATIONS.md全部可配環境變量與 URL 端點【免費下載鏈接】docker-androidAndroid in docker solution with noVNC supported, video recording and mcp server項目地址: https://gitcode.com/GitHub_Trending/do/docker-android創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考