相关疑难解决方法(0)

通过ADB连接到Docker容器中的USB Android设备

我创建了一个包含Android SDK的Docker镜像,并试图在运行此图像的容器中公开我的Android手机.所以我使用了--privileged旗帜并安装了USB设备,如下所示:

$ docker run --privileged -v /dev/bus/usb:/dev/bus/usb -d -P my-android:0.0.1
Run Code Online (Sandbox Code Playgroud)

但是,当我运行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$
Run Code Online (Sandbox Code Playgroud)

容器内的lsusb列出了设备:

ubuntu@d56b666be455:~$ lsusb
...
Bus 002 Device 017: ID 04e8:6866 Samsung Electronics Co., Ltd GT-I9300 Phone [Galaxy S III] (debugging mode)
Run Code Online (Sandbox Code Playgroud)

但是,该设备在主机上可见:

?  ./adb devices
List of devices attached
4d11abcd65b74045    device
Run Code Online (Sandbox Code Playgroud)

主机操作系统

$ uname -a
Linux ananya 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mar …
Run Code Online (Sandbox Code Playgroud)

android adb docker

22
推荐指数
3
解决办法
1万
查看次数

是否可以将USB设备暴露给LXC/Docker容器?

我有一个Docker文件中包含的嵌入式系统开发映像.为了闪存代码,我需要通过USB Serial(例如/dev/ttyACM0)连接到节点.

使用Docker,我使用了新的绑定装载功能(参见https://github.com/dotcloud/docker/issues/111,-b或者最近的-v选项),将主机devfs暴露给容器.但是,每当我连接("cat/d/ttyACM0",d是对dev的绑定安装)到设备时,我得到"不允许操作".是否有可能不仅绑定mount,而且实际上在容器中使用字符设备?

是否可能通过udev规则公开特定的开发者?

mount udev lxc docker

11
推荐指数
1
解决办法
8035
查看次数

是否可以在Windows下访问具有Docker镜像的硬件设备?

最近,发布了Windows 的原生Docker客户端(> = Windows 7).

我想知道:是否可以转发访问物理设备,将Windows作为主机运行

使用*nix主机,这似乎可以使用以下语法:

docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
Run Code Online (Sandbox Code Playgroud)

(如建议在这里),这将转发的USB设备/dev/ttyUSB0*nix的系统,以泊坞窗图像上.

--device可以在docker文档中找到该标志的描述.

Windows主机的语法是什么?

windows docker

11
推荐指数
1
解决办法
3876
查看次数

从Docker内部访问蓝牙适配器?

是否可以在docker容器内使用蓝牙(在我的情况下为BLE)加密狗?

在我的主机上:

$ hcitool dev
    Devices:
       hci0   5C:F3:70:64:F0:11
Run Code Online (Sandbox Code Playgroud)

在Docker里面它找不到任何东西.我正在运行Docker:

sudo docker run --privileged -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)

我对Linux中的蓝牙子系统了解不足以了解主机和docker之间的区别.

hci0设备确实出现在两个系统中:

$ ls -l /sys/class/bluetooth
lrwxrwxrwx  1 root root 0 Mar  5 01:23 hci0 -> ../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2.3/2-2.3:1.0/bluetooth/hci0
Run Code Online (Sandbox Code Playgroud)

有人试图在Docker中使用蓝牙吗?

linux bluetooth docker

7
推荐指数
4
解决办法
9067
查看次数

Docker容器看不到串口设备

我正在尝试运行一个可以访问主机上串行端口的Docker容器.

这是我做的:

  • 我用过Mac
  • 主机上安装的驱动程序(http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41)
  • 插入设备
  • ls /dev/t*这回 /dev/tty.usbserial-因此它的工作
  • 跑到容器,docker run -it --privileged -v /dev:/dev node:4.4.0 /bin/bash然后ls /dev/t*在没有返回/dev/tty.usbserial设备的容器内...

我玩了很多参数的不同变化,但我还没找到工作的:)

--device标志也不适合我,因为设备可能会重新连接,名称可能不同/dev/tty.usbserial.

bash usb serial-port device docker

7
推荐指数
1
解决办法
3165
查看次数

将USB设备传递到Docker Windows容器中

我使用Docker for Windows在Windows 10上.另外,我有一个起源的容器FROM microsoft/windowsservercore.我连接了USB设备,并希望将其传递给该容器.

到目前为止我发现了什么:

在Linux下你有--device=/dev/..,但我怎样才能在Windows下实现这一目标?

迈克尔弗里斯在2017-07-07写道,目前这是不可能的.但是,这条评论表明它是.

所以我的问题是:

  1. 目前是否可以将USB设备从Windows主机传递到Windows Docker容器?
  2. 如果是,那么正确的语法是什么?
  3. 如果没有,我们什么时候可以期待这个功能呢?

windows docker

7
推荐指数
1
解决办法
1674
查看次数

如何从Docker容器内部访问OSX主机上的USB驱动器?

我有一个最终要在打包在docker映像中的云计算服务(例如AWSGoogle Cloud)上运行的应用程序。该应用程序需要在云中运行的原因是,该应用程序旨在处理大型数据文件,但是在实际部署之前,我想先在本地笔记本电脑上使用我已经使用过的单个大型数据文件对其进行测试。 (用于测试和开发目的)存储在外部USB驱动器上。

我的开发机器是一台OSX笔记本电脑,并且我正在使用最新版本的docker:

stachyra> uname -a
Darwin Andrews-MacBook-Pro-76.local 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep  1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64
stachyra> docker --version
Docker version 1.10.2, build c3959b1
Run Code Online (Sandbox Code Playgroud)

OSX已将我的外部USB驱动器device挂载/dev/disk2s2/Volumes/MGR DATA

stachyra> df
Filesystem    512-blocks       Used Available Capacity   iused    ifree %iused  Mounted on
/dev/disk1     974770480  435721376 538537104    45%  54529170 67317138   45%   /
devfs                375        375         0   100%       650        0  100%   /dev
map -hosts             0          0         0   100%         0        0 …
Run Code Online (Sandbox Code Playgroud)

linux macos usb mount docker

5
推荐指数
1
解决办法
4390
查看次数

从udev规则文件向shell脚本传递参数

在规则文件中,通过传递参数"LABEL"和"DEVNAME"来执行脚本以进行安装

ACTION=="add", RUN+="/appmount/scripts/usb_mount.sh %E{ID_FS_LABEL} %E{DEVNAME}"
Run Code Online (Sandbox Code Playgroud)

在usb_mount.sh文件中,将参数值打印为

echo "LABEL: $1 DEVNAME: $2" # this does not work reliably
Run Code Online (Sandbox Code Playgroud)

某些设备具有空的LABEL字段,因此DEVNAME被打印为标签.在bash脚本中,我们可以用双引号传递args,即使args为null也可以工作.

将args传递给udev规则的相同之处是什么?

此问题的解决方法可能是切换参数的顺序.有可靠的方法吗?

variables shell export environment-variables udev

4
推荐指数
1
解决办法
1万
查看次数