系统:Ubuntu 16.04
显示管理器:lightdm
我正在尝试创建一个FROM ubuntu:latest
运行 GUI 应用程序的 docker 容器。该应用程序需要使用 sudo 执行才能访问内部使用的命令。我遵循了这博客并根据我的用途进行改编。
构建该容器后,我首先使用以下命令运行它:
docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix repo-test-3 /bin/bash
然后
./application
并且应用程序显示在屏幕上。
接下来我尝试运行相同的容器并-u 0
成为 root,在我尝试启动应用程序后出现以下错误消息:
No protocol specified
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
您知道问题是什么以及我该如何解决这个问题吗?
答案1
解决方案是:
授予docker访问X-Server的权限:
xhost +local:docker