1、在容器所在宿主机确认USB串口设备
有两种方法可以将USB设备挂载到容器中: 使用--privileged参数或者使用--device参数
- --prvleged参数可以让容器拥有主机的所有特权,包括所有可以访问USB设备。
- --device参数可以针对特定的设备挂载到容器中。
[root@docker40 ~]# lsusb
[root@docker40 ~]# dmesg | grep ttyS*
2、使用docker-compose.yml文件挂载USB转串口设备
2.1 修改docker-compose.yml文件
[root@docker40 ~]# cd /opt/tl_shr03
[root@docker40 tl_shr03]# vim docker-compose.yml
2.2 重构shr3-core容器
[root@docker40 tl_shr03]# docker stop shr3-core && docker rm -f shr3-core
[root@docker40 tl_shr03]# docker-compose up -d shr3-core
2.3 进入容器确认USB转串口设备
[root@docker40 tl_shr03]# docker exec -it shr3-core bash
bash-4.4# lsusb
bash-4.4# dmesg | grep ttyS*
3、使用docker run --device挂载USB转串口设备
3.1 创建容器
[root@docker40 tl_shr03]# docker run -itd --name test-tty --restart=always \
--device=/dev/ttyUSB0 192.168.1.22/app/shr3-core:1.0.0-SNAPSHOT
3.2 进入容器确认USB转串口设备
[root@docker40 ~]# docker exec -it test-tty bash
bash-4.4# lsusb
bash-4.4# ls /dev/tty*
4、使用docker run --privileged挂载USB转串口设备
4.1 创建容器
[root@docker40 tl_shr03]# docker run -itd --name test-tty --restart=always --privileged \
-v /dev/bus/usb:/dev/bus/usb 192.168.1.22/app/shr3-core:1.0.0-SNAPSHOT
参数说明:
--privileged,打开超级用户权限,允许容器访问宿主机的设备
-v /dev/bus/usb:/dev/bus/usb,挂载usb设备,此方式支持热插拔USB设备
4.2 进入容器确认USB转串口设备
[root@docker40 ~]# docker exec -it test-tty bash
bash-4.4# lsusb
bash-4.4# ls /dev/tty*
bash-4.4# dmesg | grep ttyS*