Docker:无法连接到任何 X 显示

Moh*_*faa 6 docker

尽管容器应该具有连接到显示器所需的权限,但我每次都会收到此错误:

docker exec -it my_container

/# rqt

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
No protocol specified
QXcbConnection: Could not connect to display :1
Could not connect to any X display.
Run Code Online (Sandbox Code Playgroud)

以下命令用于运行容器:

sudo docker run -itd --restart unless-stopped --name my_container --privileged --net=host --gpus all \
    --env="NVIDIA_DRIVER_CAPABILITIES=all" \
    --env="DISPLAY=$DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    my_image:v1.1 
Run Code Online (Sandbox Code Playgroud)

Moh*_*faa 9

解决方案是在终端中运行以下命令:

xhost +local:docker 
Run Code Online (Sandbox Code Playgroud)

然后再试一次,它应该可以工作:

docker exec -it my_container

/# rqt
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Run Code Online (Sandbox Code Playgroud)