主机是windows 7 machine

时间:2018-02-19 11:57:53

标签: docker adb docker-windows

我有一台安装了泊坞工具箱的 Windows 7 计算机

我从下面链接

下载了安装了adb的图像和正在运行的容器

https://hub.docker.com/r/muicoder/adb/

容器已启动并正在运行,下面提到了容器ID

9ba51613a7be

在我的主机(Windows 7)上,我连接了 nexus 6 ,我可以看到

的结果
adb devices


> C:\Users\panmishr>adb devices List of devices attached
> * daemon not running; starting now at tcp:5037
> * daemon started successfully 
> * ZY2235CQ26      device

我使用

杀死了本地主机中的 adb守护程序
adb kill-server

现在我正在尝试使用以下命令检查容器上的设备,但是它没有显示任何映射到容器的设备。

$ docker exec -it -d --privileged -P -p 5037:5037 9ba51613a7be adb devices
  

附加设备列表

请建议我缺少什么

2 个答案:

答案 0 :(得分:0)

只是添加这个问题的结论。

到目前为止,我无法找到在Windows 7机器上运行Windows docker的可行解决方案。大多数帖子都是围绕Windows 10和Windows 2016 Server的Windows docker。

我在Windows 7机器上切换到Linux docker,但 adb设备仍未在Linux容器上识别

最后,我不得不选择Linux主机和Linux容器,这些设备在容器上可见。

答案 1 :(得分:0)

-p 5037:5037用于查看在主机上键入adb devices时容器上正在运行的设备。但是,在容器中键入adb devices时,您会看到主机上已连接设备。为此

  1. 在主机上安装ssh服务器,该服务器是win 7,然后从容器中转发端口5037。运行方式:

$ ssh -T -N -L5037:127.0.0.1:5037 root@host.ip host.ip可能是:192.168.0.10

  1. 在容器上安装ssh服务器,但首先在主机上暴露映射5022的容器端口22。 (在配置/etc/ssh/sshd_config文件之后)。运行像: $ ssh -T -N -R5037:127.0.0.1:5037 root@127.0.0.1 -p 5022在您的主机中以进行远程转发。

在选择两个选项之前,应将主机上的端口8081映射为:-p8081:8081

所以您只需要运行:

docker run -p8081:8081 android_container

然后

docker exec -it 9ba51613a7be adb devices

如果您转发了端口。

您还为此提供了另一种解决方案。请检查此仓库:RN-Container-with-ADB-Real-Device