docker-compose 设备通配符

Sty*_*typ 5 docker docker-compose

我需要将所有视频、音频或 USB 设备传递到容器。

devices:
  - "/dev/video*:/dev/video*"
Run Code Online (Sandbox Code Playgroud)

这显然行不通。但容器运行的平台可能有 2 个、3 个或更多视频源,我需要将所有这些传递到 docker 容器中。

有人知道如何使用 docker-compose 实现这一点吗?我不想使用“特权”模式。

谢谢!马丁

atl*_*ine 6

您可以映射/dev到容器,并为设备添加cgroups权限。

如果直接使用docker命令,看这个

docker run -it --rm -v /dev:/dev --device-cgroup-rule='c *:* rmw' ubuntu:18.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)

*如果您想限制某些设备,可以将上面命令中的第一个更改为主设备号。

对于撰写,似乎只能2.3支持这个(我不确定为什么 3 不支持,也许需要时间),请参阅

version: "2.3"
services:
  backend:
     image: ubuntu:18.04
     device_cgroup_rules:
       - 'c *:* rmw'
     volumes:
       - /dev:/dev
Run Code Online (Sandbox Code Playgroud)