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.
Not sure if the DISPLAY=:0, which is not the local display, request for the network connection.
Could you try to update the DISPLAY port to :1 see if helps?
Sorry for the late reply. I just had the chance to try it out. However, when I do
export DISPLAY=:1
and then run the container without specifying the –network host, it still throws:
nvbuf_utils: Could not get EGL display connection
No EGL Display
nvbufsurftransform: Could not get EGL display connection
nvbuf_utils: Could not get EGL display connection
No EGL Display
nvbufsurftransform: Could not get EGL display connection
nvbuf_utils: Could not get EGL display connection
nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED ...
Using winsys: x11
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...
Yes, I am trying to start a python script for let’s say object detection. There is no problem with enabling the container without setting network, the main question is why can’t I get the CSI camera output from inside of the container if I do not set the network setting?