How to use V4l2src inside docker container for raspberry pi v2 camera?

Hello,

I have created my container like below,

sudo docker run --net=host --runtime nvidia -it --gpus all --ipc=host -v /home/nvidia/docker_yolov5/:/yolov5 -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE --cap-add=SYS_ADMIN --cap-add=CAP_SYS_ADMIN --cap-add=NET_ADMIN --cap-add=NET_RAW -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/video0:/dev/video0 nvcr.io/nvidia/l4t-ml:r32.5.0-py3

I have used my mipi camera by using nvarguscamerasrc like,

gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink

The problem is I cant use the camera with v4l2 inside docker.

v4l2-ctl --list-devices

I get this error.

Failed to open /dev/video0: Operation not permitted

How can I use v4l2 inside docker? Thank in advanced.

Add “–device=/dev/video0:/dev/video0” to the docker run command.
Maybe like

sudo docker run --net=host --runtime nvidia -it --gpus all --ipc=host --device=/dev/video0:/dev/video0 -v /home/nvidia/docker_yolov5/:/yolov5 -v /tmp/argus_socket:/tmp/argus_socket --cap-add SYS_PTRACE --cap-add=SYS_ADMIN --cap-add=CAP_SYS_ADMIN --cap-add=NET_ADMIN --cap-add=NET_RAW -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/video0:/dev/video0 nvcr.io/nvidia/l4t-ml:r32.5.0-py3

I tried but unfortunately it does not work. I am still getting error

cannot open display: :0

Modify -e like below.

-e DISPLAY=$DISPLAY