是否可以与多个 Docker 容器共享一个 USB GPS 加密狗?
Is it possible to share a USB GPS dongle with multiple Docker containers?
我在 Raspberry Pi 3 中使用 VK-172 U-Blox AG GPS 作为只接收 APRS iGate 的一部分。我在 RPi 上 运行ning Docker。现在我正在 运行 设置一个 Docker 容器,该容器使用 GPS 加密狗获取 Direwolf 的位置数据,并将其报告给 APRS-IS 网络。
我还想 运行 一个 Docker 容器来使用 GPS 作为我网络上其他机器的非常准确的时间参考。
是否可以与多个 Docker 容器共享一个 USB GPS 加密狗?
73 德 K6JEB
[免责声明]
我不确定您是否想知道如何与容器共享 any USB 设备,或者特别是这个 USB GPS 加密狗(因为一些额外的要求、配置等)。但我会努力做到最好的。
添加单个 USB 设备
如果你想添加一个USB设备(即插入主机)到容器中。您可以使用 --device
docker 运行 选项。
--device Add a host device to the container
您将需要您的设备连接到的总线和设备(使用 lsusb
或 dmesg
查找)。示例:
假设我想将这个 Yubikey 添加到容器中:
$ 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
标志才能获得正确的权限。
--privileged Give extended privileges to this container
正在添加所有 USB 设备
您还可以通过挂载整个 /dev/usb/bus
目录将所有可用的 USB 设备连接到容器或容器:
docker run -dit --privileged -v /dev/bus/usb:/dev/bus/usb <image>
这是你需要的吗?
此致
我在 Raspberry Pi 3 中使用 VK-172 U-Blox AG GPS 作为只接收 APRS iGate 的一部分。我在 RPi 上 运行ning Docker。现在我正在 运行 设置一个 Docker 容器,该容器使用 GPS 加密狗获取 Direwolf 的位置数据,并将其报告给 APRS-IS 网络。
我还想 运行 一个 Docker 容器来使用 GPS 作为我网络上其他机器的非常准确的时间参考。
是否可以与多个 Docker 容器共享一个 USB GPS 加密狗?
73 德 K6JEB
[免责声明] 我不确定您是否想知道如何与容器共享 any USB 设备,或者特别是这个 USB GPS 加密狗(因为一些额外的要求、配置等)。但我会努力做到最好的。
添加单个 USB 设备
如果你想添加一个USB设备(即插入主机)到容器中。您可以使用 --device
docker 运行 选项。
--device Add a host device to the container
您将需要您的设备连接到的总线和设备(使用 lsusb
或 dmesg
查找)。示例:
假设我想将这个 Yubikey 添加到容器中:
$ 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
标志才能获得正确的权限。
--privileged Give extended privileges to this container
正在添加所有 USB 设备
您还可以通过挂载整个 /dev/usb/bus
目录将所有可用的 USB 设备连接到容器或容器:
docker run -dit --privileged -v /dev/bus/usb:/dev/bus/usb <image>
这是你需要的吗?
此致