docker 容器内没有lsusb
时间: 2023-10-20 16:09:07 浏览: 173
如果在 Docker 容器内运行 `lsusb` 命令提示找不到命令,可能是因为容器没有安装 `usbutils` 工具包。你可以通过在 Dockerfile 中添加以下指令安装该工具包:
```
RUN apt-get update && apt-get install -y usbutils
```
然后重新构建 Docker 镜像即可使用 `lsusb` 命令。
相关问题
在Linux Docker 容器中使用圣天诺加密狗
在Linux Docker容器中使用圣天诺加密狗需要以下步骤:
1. 确认Linux内核支持USB设备的挂载和访问,可以通过`lsusb`命令查看系统是否能够识别加密狗。
2. 在Dockerfile中添加如下指令,以便在容器中安装udev和usbutils工具:
```
RUN apt-get update && apt-get install -y \
udev \
usbutils
```
3. 在Dockerfile中添加如下指令,以便在容器中复制加密狗驱动文件:
```
COPY stnopen.so /usr/local/lib/
COPY 99-stn.rules /etc/udev/rules.d/
```
其中,`stnopen.so`是加密狗的驱动文件,`99-stn.rules`是udev规则文件,用于加载加密狗设备。
4. 在Dockerfile中添加如下指令,以便在容器中加载udev规则文件:
```
RUN udevadm control --reload-rules && udevadm trigger
```
5. 在运行Docker容器时,需要添加以下参数,以便将宿主机上的加密狗设备映射到容器中:
```
--privileged \
--device=/dev/bus/usb:/dev/bus/usb
```
其中,`--privileged`参数用于让容器拥有特殊权限,`--device`参数用于将宿主机上的USB总线映射到容器中。
6. 在容器中测试加密狗是否能够正常工作,可以执行以下命令:
```
cd /usr/local/lib
./stnopen
```
如果加密狗能够正常工作,则会输出加密狗的信息。
注意:在使用加密狗时,需要确保宿主机和容器中的时间同步,否则可能会导致加密狗失效。
docker 挂载usb
要在 Docker 容器中挂载 USB 设备,需要执行以下步骤:
1. 确认 USB 设备已经连接到主机上。
2. 在主机上安装 `usbutils` 工具,使用以下命令:
```
sudo apt-get install usbutils
```
3. 运行以下命令,查看 USB 设备的 Vendor ID 和 Product ID:
```
lsusb
```
4. 运行以下命令,创建一个新的 Docker 卷:
```
docker volume create --driver local \
--opt type=none \
--opt device=/dev/bus/usb \
--opt o=bind \
usbvol
```
这个命令将主机上的 `/dev/bus/usb` 目录绑定到 Docker 卷 `usbvol` 上。
5. 运行 Docker 容器时,使用以下命令将 Docker 卷挂载到容器中:
```
docker run -it --rm \
--mount source=usbvol,target=/dev/bus/usb,type=bind \
your-image
```
这个命令将 Docker 卷 `usbvol` 挂载到容器中的 `/dev/bus/usb` 目录上,使容器中的程序可以访问 USB 设备。
注意:在第 5 步中,`your-image` 表示你要运行的 Docker 镜像。
阅读全文