【发布时间】:2015-04-10 13:49:14
【问题描述】:
我创建了一个包含 Android SDK 的 Docker 映像,并试图在运行此映像的容器中公开我的 Android 手机。所以我使用--privileged 标志并安装USB设备如下:
$ docker run --privileged -v /dev/bus/usb:/dev/bus/usb -d -P my-android:0.0.1
但是,当我运行 ADB 设备时,它没有显示 USB 设备:
ubuntu@d56b666be455:~/Android/Sdk/platform-tools$ ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
ubuntu@d56b666be455:~/Android/Sdk/platform-tools$
容器内的lsusb列出设备:
ubuntu@d56b666be455:~$ lsusb
...
Bus 002 Device 017: ID 04e8:6866 Samsung Electronics Co., Ltd GT-I9300 Phone [Galaxy S III] (debugging mode)
该设备在主机上是可见的:
⇒ ./adb devices
List of devices attached
4d11abcd65b74045 device
主机操作系统
$ uname -a
Linux ananya 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mar 13 10:33:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Docker 版本
$ docker --version
Docker version 1.5.0, build a8a31ef
可能是什么问题?
【问题讨论】:
-
我不认为设备中运行的 adb 守护进程可以连接到两个 adb 服务器。尝试将其与主机的 adb 断开连接,然后将其连接到 docker 的 adb。
-
对于没有
--privileged的解决方案,请参阅this answer