我正在尝试运行一个可以访问主机上串行端口的Docker容器.
这是我做的:
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
.
当我在容器udevadm
内部运行docker container并列出某些设备的属性时,只有该设备的基本信息.当我在主机上做同样的事情时,我可以看到更多.如何获取容器内的所有信息?
host$ udevadm info --query=property /dev/bus/usb/004/008
BUSNUM=004
DEVNAME=/dev/bus/usb/004/008
DEVNUM=008
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.1
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=MCP2210_USB-to-SPI_Master
ID_MODEL_ENC=MCP2210 USB-to-SPI Master
ID_MODEL_ID=00de
ID_REVISION=0002
ID_SERIAL=Microchip_Technology_Inc._MCP2210_USB-to-SPI_Master_0000267472
ID_SERIAL_SHORT=0000267472
ID_USB_INTERFACES=:030000:
ID_VENDOR=Microchip_Technology_Inc.
ID_VENDOR_ENC=Microchip Technology Inc.
ID_VENDOR_FROM_DATABASE=Microchip Technology, Inc.
ID_VENDOR_ID=04d8
MAJOR=189
MINOR=391
PRODUCT=4d8/de/2
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=176769529274
host$ docker run -ti -v /dev/bus/usb/:/dev/bus/usb alpine sh
container# apk update
container# apk add eudev
container# udevadm info --query=property /dev/bus/usb/004/008
BUSNUM=004
DEVNAME=/dev/bus/usb/004/008
DEVNUM=008
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.1
DEVTYPE=usb_device
DRIVER=usb
MAJOR=189
MINOR=391
PRODUCT=4d8/de/2
SUBSYSTEM=usb
TYPE=0/0/0
Run Code Online (Sandbox Code Playgroud)
我还尝试从host:/ sys,/ dev挂载其他卷.没有帮助.
编辑根据Alex P.的回答:
我对udev不太熟悉.我复制了这个
SUBSYSTEM=="usb", …
Run Code Online (Sandbox Code Playgroud)