是否可以与多个Docker容器共享USB GPS加密狗?

时间:2018-11-07 19:30:35

标签: docker raspberry-pi gps usb

我在Raspberry Pi 3中使用VK-172 U-Blox AG GPS作为仅接收APRS iGate的一部分。我在RPi上运行Docker。现在,我正在运行一个Docker容器,该容器使用GPS加密狗获取Direwolf的位置数据,该数据已报告给APRS-IS网络。

我还想运行一个Docker容器,将GPS用作网络上其他计算机的非常准确的时间参考。

是否可以与多个Docker容器共享USB GPS加密狗?

73 de K6JEB

1 个答案:

答案 0 :(得分:0)

[ 免责声明 ] 我不确定您是否想知道如何与容器或特别是此USB GPS加密狗共享任何 USB设备(由于某些其他要求,配置等)。但我会尽力而为。

添加单一USB设备

如果要将USB设备(已插入主机)添加到容器中。您可以使用--device docker run选项。

  

-设备将主机设备添加到容器中

您将需要与设备连接到的总线和设备(使用lsusbdmesg进行查找)。示例:

让我们说我想把这把Yubikey添加到contaiener中:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
....
Bus 001 Device 017: ID 1050:0010 Yubico.com Yubikey (v1 or v2)

然后我将像这样运行容器:

docker run -dit --device /dev/bus/usb/<BUS>/<DEVICE> <image>
docker run -dit --device /dev/bus/usb/001/017 <image>

然后可以在容器中访问此USB设备。现在,在您的用例中,将此选项添加到需要访问该设备的容器中。

请注意!!您可能需要--privileged标志才能拥有正确的权限。

  

-特权赋予此容器扩展的特权

添加所有USB设备

您还可以通过安装整个/dev/usb/bus目录将所有可用的USB设备连接到容器或容器:

docker run -dit --privileged -v /dev/bus/usb:/dev/bus/usb <image>

这是您需要的吗?

致谢