如何在docker中获得摄像头访问权限?

问题描述 投票:-1回答:1

我想从docker镜像中访问摄像头。我的权限。

dockerx@85ca088a4e0c:~$ ls -la /dev/vid*
  crwxrwxrwx+ 1 root 986 81, 0 May 29 08:52 /dev/video0
  crwxrwxrwx+ 1 root 986 81, 1 May 29 08:52 /dev/video1
dockerx@85ca088a4e0c:~$ groups dockerx
  dockerx : dockerx root video x2gouser

理论上,我有访问devvideo*的权限,但试图访问它(例如通过vlc)会导致错误。

dockerx@85ca088a4e0c:~$ vlc
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[00005629e3774420] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-dockerx'
[00005629e3778390] main playlist: playlist is empty
[00007f5ca80010e0] v4l2 demux error: cannot open device '/dev/video0': Operation not permitted
[00007f5ca80010e0] v4l2 demux error: cannot open device '/dev/video0': Operation not permitted
[00007f5ca8003350] v4l2 stream error: cannot open device '/dev/video0': Operation not permitted
[00007f5ca000c800] v4l2 demux error: cannot open device '/dev/video1': Operation not permitted
[00007f5ca000c800] v4l2 demux error: cannot open device '/dev/video1': Operation not permitted
[00007f5ca000d130] v4l2 stream error: cannot open device '/dev/video1': Operation not permitted
QObject::~QObject: Timers cannot be stopped from another thread

为什么会发生这种情况?

更新..: 我的Docker文件,入口点.sh

UPD2. 如果你投反对票,请花一分钟时间说说原因。谢谢你。

docker permissions webcam vlc
1个回答
0
投票

添加特权选项 docker run --privileged. 如果还是不行的话,你也可以考虑装上 /dev/video

来自 文件

默认情况下,容器不允许访问任何设备,但 "特权 "容器可以访问所有设备(参见cgroups设备文档)。

另外,这个答案也是类似的 Docker:如何避免Docker容器中不允许的操作?

© www.soinside.com 2019 - 2024. All rights reserved.