
本项目提供Docker支持,用于在容器化环境中运行AutoMobile,包含所有必要的Android开发工具。
要将此Docker镜像与MCP客户端一起使用,请参阅MCP客户端配置指南获取完整的设置说明。
Claude Desktop快速示例:
json{ "mcpServers": { "auto-mobile": { "command": "docker", "args": ["run", "-i", "--rm", "--init", "--privileged", "--network", "host", "auto-mobile:latest"] } } }
bash# 构建镜像 docker-compose build # 以生产模式运行 docker-compose up auto-mobile # 以开发模式运行(带自动重载) docker-compose up auto-mobile-dev
已发布的镜像可在Docker Hub获取:https://hub.docker.com/r/kaeawc/auto-mobile
bash# 拉取最新版本 docker pull kaeawc/auto-mobile:latest # 拉取特定版本 docker pull kaeawc/auto-mobile:0.0.7 # 拉取主版本.次版本(推荐用于稳定性) docker pull kaeawc/auto-mobile:0.0 # 拉取特定提交 docker pull kaeawc/auto-mobile:main-abc1234
维护者注意:有关发布凭据和工作流配置,请参阅Docker Hub设置指南。
Docker镜像包含:
要包含Android模拟器/系统镜像,请使用以下命令构建:
bashdocker build --platform=linux/amd64 --build-arg ANDROID_INSTALL_EMULATOR=true -t auto-mobile:latest .
bash# 交互shell docker-compose exec auto-mobile bash # 运行测试 docker-compose exec auto-mobile npm test # 运行代码检查 docker-compose exec auto-mobile npm run lint # 检查已连接设备 docker-compose exec auto-mobile adb devices # 构建Android组件 docker-compose exec auto-mobile bash -c "cd android && ./gradlew build"
完整文档请参阅docs/docker.md
--platform=linux/amd64当镜像构建时未包含模拟器(ANDROID_INSTALL_EMULATOR=false),请为您的操作系统使用主机模拟器设置,以便容器可以访问已安装的AVD和运行中的模拟器。
Linux(主机SDK + 容器内模拟器):
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ --network host \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_HEADLESS=true \ -v "$HOME/Android/Sdk:/opt/android-sdk" \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
macOS(主机模拟器,容器通过ADB自动连接):
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
启用AUTOMOBILE_EMULATOR_EXTERNAL=true后,容器会自动连接到运行在host.docker.internal:5555-5585的主机模拟器。自动连接服务每10秒扫描一次模拟器,并在模拟器重启时重新连接。无需手动执行adb connect。
不要将macOS SDK挂载到/opt/android-sdk(Linux容器中无法运行macOS二进制文件)。
自动连接环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_EMULATOR_EXTERNAL | false | 启用外部/主机模拟器模式及自动连接 |
AUTOMOBILE_HOST_GATEWAY | host.docker.internal | 连接主机模拟器的主机名 |
AUTOMOBILE_EMULATOR_SCAN_INTERVAL_MS | 10000 | 扫描新模拟器的频率(毫秒) |
AUTOMOBILE_EMULATOR_PORT_START | 5555 | 要扫描的第一个模拟器ADB端口 |
AUTOMOBILE_EMULATOR_PORT_END | 5585 | 要扫描的最后一个模拟器ADB端口 |
如需完整ADB命令支持(包括adb emu kill和其他控制台命令),可将容器连接到主机的ADB服务器,而非单个设备端口:
bash# 在主机上,确保ADB服务器正在运行 adb start-server # 使用ADB服务器隧道运行容器 docker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -e AUTOMOBILE_ADB_SERVER_HOST=host.docker.internal \ -e AUTOMOBILE_ADB_SERVER_PORT=5037 \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
ADB服务器隧道优势:
emu kill等)| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_ADB_SERVER_HOST | (无) | 主机ADB服务器地址(设置后启用隧道模式) |
AUTOMOBILE_ADB_SERVER_PORT | 5037 | 主机ADB服务器端口 |
要从容器内部启动/停止模拟器和运行SDK命令,请在macOS主机上运行主机控制守护进程:
bash# 启动主机控制守护进程(运行在端口15037) node scripts/docker/host-control-daemon.js # 或使用自定义设置 node scripts/docker/host-control-daemon.js --port 15037 --host 0.0.0.0
守护进程提供JSON-RPC接口,支持:
list-avds - 列出可用AVDstart-emulator - 按AVD名称启动模拟器stop-emulator - 停止模拟器list-running - 列出运行中的模拟器avdmanager - 运行avdmanager命令sdkmanager - 运行sdkmanager命令使用主机控制运行容器:
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -e AUTOMOBILE_HOST_CONTROL_HOST=host.docker.internal \ -e AUTOMOBILE_HOST_CONTROL_PORT=15037 \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_HOST_CONTROL_HOST | host.docker.internal | 主机控制守护进程地址 |
AUTOMOBILE_HOST_CONTROL_PORT | 15037 | 主机控制守护进程端口 |
AUTOMOBILE_HOST_CONTROL_ENABLED | true | 设置为false禁用主机控制集成 |
adb要求adb kill-server && adb start-server--privileged标志运行容器bash# 清理并重建 docker-compose down -v docker-compose build --no-cache docker-compose up
bash# 检查Dockerfile ./scripts/docker/validate_dockerfile.sh # 运行容器结构测试 ./scripts/docker/test_container.sh # 测试主机模拟器访问(自动启动主机模拟器) ./scripts/docker/test_host_emulator_mcp.sh
bash# 构建镜像 docker build --platform=linux/amd64 -it --rm --init auto-mobile:latest # 测试交互 echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2.0","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | docker run --platform=linux/amd64 -i --rm --init auto-mobile:latest
更多帮助,请参阅完整的Docker文档和MCP配置指南。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务