一、windows10家庭版安装docker desktop
- 1、开启Hyper-V功能
将以下内容保存为.cmd文件,然后以管理员身份打开这个文件。安装过程需要几分钟,安装完成后按提示重启,重启完成就能使用功能完整的Hyper-V了
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
- 2、查看是否开启Hyper-V功能
查看地址:控制面板-程序-启动或关闭windows功能
- 3、 伪装成windows专业版绕过安装检测
如图,由于Docker Desktop会在安装的时候检测系统版本,直接安装会显示安装失败。所以需要改下注册表绕过安装检测。
使用管理员权限运行cmd命令
REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F
- 4、以上准备环境搞定后,就可以顺利安装docker desktop了
安装地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows
二、stf环境搭建
- 1、拉取镜像
如果拉取镜像很慢,建议修改成中国科技大学镜像仓库:https://docker.mirrors.ustc.edu.cn
android adb 镜像:docker pull sorccu/adb:latest
rethinkdb镜像:docker pull rethinkdb:latest
openstf镜像:docker pull openstf/ambassador:latest
nginx 代理镜像:docker pull nginx:latest
查看已经拉取的docker镜像:docker images
- 2、启动容器
docker run -d --name adbd --privileged -v /d/test/usb:/dev/bus/usb --net host sorccu/adb:latest
docker run -d --name rethinkdb -v /d/test:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
docker run -d --name stf --net host openstf/stf stf local --public-ip 10.0.75.2
注意小心踩坑:
1、windows文件挂载路径 D:\test,需要写成-v /d/test:/data
2、stf容器 --public-ip 参数设置:
docker desktop会开启一个虚拟网卡,默认地址为10.0.75.0
尝试ping 10.0.75.0 这个地址发现是不通的,于是ipconfig 查看网络信息,发现docker开放的是10.0.75.1这个地址

于是使用10.0.75.1运行容器
docker run -d --name stf --net host openstf/stf stf local --public-ip 10.0.75.1
,发现使用浏览器打开http://10.0.75.1:7100
被拒绝连接,后考虑端口映射问题,但一直没有解决后考虑直接访问容器stf服务,于是进入容器,获取容器的IP
PS C:\> docker exec -it 47b16b69bc94 /bin/bash
stf@linuxkit-00155d010619:/app$ ip addr
发现容器ip为10.0.75.2,使用这个地址访问7100端口,终于成功,但是一直弹这个
于是使用容器ip重新部署容器
docker run -d --name stf --net host openstf/stf stf local --public-ip 10.0.75.2
访问正常,至此stf环境搭建完成
三、映射本地设备到docker 容器
1、本地电脑上需要对外开放adb 的5037端口
adb nodaemon server -a -P 5037
2、在docker stf容器开启监听
docker exec <stf的容器id> bash -c 'stf provider --name mikezhoudeMac-mini.local --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 20000 --public-ip <stf容器ip:10.0.75.2> --storage-url http://localhost:7100/ --adb-host <docker desktop地址:10.0.75.1> --adb-port 5037 --vnc-initial-size 600x800 --allow-remote'adb nodaemon server -a -P 5037
注意两个IP地址参数,–public-ip、–adb-host
至此本地真机使用usb连接或者模拟器都可以映射到stf容器中
`