Search code examples
dockergstreamerx11nvidiaegl

Gstreamer Camera Usage within Docker Containers


I'm currently working on running DL algorithms inside docker containers and I've been successful. However, I can only get it running by passing --net=host flag to docker run command which makes container use host computer's network interface. If I don't pass that flag it throws the following error:

No EGL Display 
nvbufsurftransform: Could not get EGL display connection
No protocol specified
nvbuf_utils: Could not get EGL display connection

When I do

echo $DISPLAY

it outputs :0 which is correct.

But I don't understand what Gstreamer, X11 or EGL has to do with full network feature. Is there any explanation for this or any workaround except --net=host flag? Because of this reason I can't map different ports for various containers.


Solution

  • I also have created a topic on this on NVIDIA DevTalk Forum but it still is a dark spot for me. I didn't satisfied with the answers I got.

    But it is OK to use --net=host flag to solve this problem anyways.