从 docker 容器连接外部模拟器

Connect external emulator from docker container

我已经构建容器,其中包含测试我们的应用程序所需的一切,除了模拟器,我想将它们保存在我的机器本地。

我运行容器使用这个命令

docker run -d -p 4725:4725 -p 4723:4723 -p 5037:5037 -p 5555:5555 --privileged  -v /Users/moradk/Root/automation/apk/:/root/tmp/  --name appium-offical appium-offical shell

当我在容器内 运行 shell 命令时:

adb devices

我找不到任何设备。

否则,当我 运行 在我的本地机器 (Mac) 中添加设备时,我已经将设备连接到我的本地机器 (不是 DOCKER),我得到了设备姓名

如何将docker连接到本地设备,我尝试运行:

adb connect 0.0.0.0:5555

将我的本地设备连接到 docker,但不起作用,

有什么建议吗?

谢谢大家

您应该删除 docker 运行 命令中的“-p 5037:5037”

然后在docker容器中创建隧道:

ssh -L 6037:localhost:5037 -N -g username@host_ip_address -f

您可以通过以下方式访问主机 adb:

adb -H 127.0.0.1 -P 6037 devices

您也可以在 ssh 隧道中使用默认端口 5037,这对我有用。