Как мне получить права доступа к веб-камере в docker? - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь получить доступ к веб-камере с изображения 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

Итак, теоретически у меня есть разрешения на доступ / dev / video *, но попытка доступа (например, через vl c) вызывает ошибку:

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

Почему это может случиться?

Upd .: My Dockerfile , точка входа. sh

UPD2. Если вы голосуете против, пожалуйста, скажите, почему. Спасибо.

1 Ответ

0 голосов
/ 29 мая 2020

Добавьте привилегированный вариант docker run --privileged. Если он по-прежнему не работает, вы также можете рассмотреть возможность установки /dev/video

Из docs

по умолчанию контейнеру не разрешен доступ к каким-либо устройствам , но «привилегированному» контейнеру предоставляется доступ ко всем устройствам (см. документацию по устройствам cgroups)

Также этот ответ аналогичен Docker: Как избежать Операция, запрещенная в Docker Контейнер?

...