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

6

尽管容器应具备连接到显示器所需的权限,但我每次都会得到以下错误:

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.

以下命令用于运行容器:
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 

1
我在使用docker和ssh时遇到了问题。这个URL看起来很有希望 https://blog.yadutaf.fr/2017/09/10/running-a-graphical-app-in-a-docker-container-on-a-remote-server/ - enthusiasticgeek
1个回答

9
解决方法是在终端中运行以下命令:
xhost +local:docker 

然后再尝试一次,应该就能正常工作了:

docker exec -it my_container

/# rqt
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

1
谢谢您,我一直在尝试各种解决方案来解决QT xcb错误,而这是唯一有效的方法。 - adamconkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接