跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash大前端java

Linux 下基于 Docker 部署 Android 模拟器及远程访问方案

在 Linux Ubuntu 系统上通过 Docker 部署 Android 模拟器的方法,并说明了如何结合内网穿透工具实现远程访问。首先检查虚拟化环境支持,拉取官方镜像运行容器,映射端口至本地。随后通过隧道服务将本地端口暴露为公网地址,从而实现无需公网 IP 即可远程调试 Android 应用。该方案简化了开发环境搭建流程,便于团队协作。

ByteFlow发布于 2026/3/23更新于 2026/9/1123K 浏览
Linux 下基于 Docker 部署 Android 模拟器及远程访问方案

1. 虚拟化环境检查

执行以下命令安装检查工具:

sudo apt install cpu-checker

然后执行以下命令检查是否支持虚拟化:

kvm-ok

若提示正常支持虚拟化环境,则可以进行 Android 模拟器部署。如果未出现正常信息,需要检查设备是否开启虚拟化支持。

2. Android 模拟器部署

本文采用 Docker 方式部署。首先拉取镜像,官方提供多种安卓版本,具体可参考 GitHub 仓库。理论上版本越高运行开销越大,本例以 Android 9.0 版本演示。

拉取镜像:

sudo docker pull budtmo/docker-android:emulator_9.0

拉取后开始运行容器。以下命令模拟一台 Samsung Galaxy S7 的安卓设备,对外访问端口为 6080:

docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S7" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_9.0

运行后,输入 sudo docker ps 查看运行的容器,UP 状态表示正常。

在浏览器访问 Linux Ubuntu 的 6080 端口,即可看到 Android 模拟器界面。首次启动可能会较慢,如果觉得卡顿,可以部署更低配置的机型。本地测试访问成功后,需配置内网穿透以实现远程访问。

3. 安装内网穿透工具

在 Linux 系统上安装内网穿透工具,通过转发本地端口映射的 HTTP 公网地址,实现远程访问,无需注册域名或购买云服务器。

使用一键脚本安装命令:

curl -L https://www.example.com/static/downloads/install-release.sh | sudo bash

安装完成后,将服务加入系统并设置开机启动,然后启动服务:

# 加入系统服务设置开机启动
sudo systemctl enable cpolar
# 启动 cpolar 服务
sudo systemctl start cpolar
# 重启 cpolar 服务
sudo systemctl restart cpolar
# 查看 cpolar 服务状态
sudo systemctl status cpolar
# 停止 cpolar 服务
sudo systemctl stop cpolar

安装和成功启动服务后,通过局域网 IP 加 9200 端口(例如 http://192.168.xxx.xxx:9200)访问管理界面,使用账号登录后进行 Web 配置。

4. 配置公网地址

点击隧道管理创建隧道,配置 Android 模拟器的公网 HTTP 地址隧道:

  • 隧道名称:自定义命名,避免重复
  • 协议:选择 HTTP
  • 本地地址:6080(Docker 部署后对外访问的端口)
  • 域名类型:免费随机域名
  • 地区:选择 VIP 区域

点击创建。

隧道创建成功后,在在线隧道列表查看生成的公网访问地址,可选择 HTTP 或 HTTPS 进行远程访问。

5. 远程访问

使用生成的 HTTPS 公网地址,在任意设备的浏览器中访问,即可查看 Android 模拟器。此方法实现了无需云服务器、无需公网 IP 即可远程访问。

小结

上述过程使用了随机公网地址,优势在于建立速度快,但缺点是网址由随机字符生成,不易记忆且 24 小时内可能变化,适合临时使用。建议长期使用固定二级子域名,便于协作。

6. 固定公网地址

由于随机地址不利于长期访问,可配置二级子域名作为固定地址。

登录管理后台,预留二级子域名,设置名称并保留。复制保留成功的二级子域名名称。

返回 Web UI 管理界面,找到对应隧道,点击编辑修改隧道信息:

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新。

更新完成后,在线隧道列表中显示的公网地址将变为设置的二级子域名名称。

7. 固定地址访问

最后,使用固定的公网 HTTPS 地址访问,确认连接成功。至此,一个固定且永久不变的公网地址设置完成,可随时远程访问本地 Android 模拟器。

目录

  1. 1. 虚拟化环境检查
  2. 2. Android 模拟器部署
  3. 3. 安装内网穿透工具
  4. 加入系统服务设置开机启动
  5. 启动 cpolar 服务
  6. 重启 cpolar 服务
  7. 查看 cpolar 服务状态
  8. 停止 cpolar 服务
  9. 4. 配置公网地址
  10. 5. 远程访问
  11. 小结
  12. 6. 固定公网地址
  13. 7. 固定地址访问

更多推荐文章

查看全部
  • 基于 Higress 网关将 REST API 转换为 MCP Server
  • Plottable 高级图表制作:10 种从散点图到堆叠面积图的实现方法
  • 数据结构核心:树、二叉树、堆排序与 TOP-K 问题详解
  • 华为 OD 机试:螺旋数字矩阵
  • SpringMVC 详解:原理、HTTP 与参数处理
  • Python 核心知识体系总结:基础语法、内存模型与面向对象编程
  • GitHub Copilot 学生认证及实战使用指南
  • Python webbrowser 库:跨平台浏览器控制接口
  • 2026 年免费及低成本 AI 算力渠道指南与 OpenClaw 配置
  • 清华智谱开源 7440 亿参数智能体模型 GLM-5
  • DooTask 升级指南:解锁 AI 新功能与协作优化
  • 注意力机制与 Transformer 模型实战指南
  • ToDesk ToClaw AI 桌面自动化功能测评
  • Trae IDE 实战:从零开发 AI Chatbot 应用
  • 基于 ESP32-C5 的 Moji 2.0 小智 AI 桌面机器人开源方案
  • 开源游乐场收银台与押金系统多场景收银能力设计
  • SQL 防火墙:基于白名单的数据库安全防护方案
  • Fooocus 部署实战:本地手动配置与云平台方案对比
  • SpringDoc OpenAPI 常用注解详解与实战示例
  • 家庭用电数据分析与 Prophet 时间序列预测

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online