我按照以下教程进行操作http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/并能够成功运行 Firefox。但是,重新启动后,我无法从图形登录或通过 为我的用户启动 X。startx
它总是出错:
(EE) xf86OpenConsole: Cannot open virtual console 2 (permission denied)
如果我startx
以 root 身份运行,它运行良好。如何才能重新获得从我的用户帐户使用 X 的能力?
答案1
虚拟控制台 2 似乎是指 tty2。我在 docker 容器中通过 startx 命令使用 chromium-browser 和 X11 时遇到了这个问题。
为了解决这个问题,我必须在 docker 容器中创建一个用户,将其添加到“tty”组,并确保“tty”组具有读取权限。当我到达那里时,tty2 已经启用了写入权限。
Chmod 供参考:
sudo chmod 660 /dev/tty2
对于读/写所有者、读/写组以及世界而言,什么都没有。
在我的 docker run 命令中,我使用 --device 标志映射了 tty2:
--device=/dev/tty2:/dev/tty2
这为我解决了这个非常具体的问题。我希望这对以后的某些人有所帮助。
答案2
我不确定我做了什么,但我肯定以 root 身份运行了某些不该运行的操作。要使用您的用户运行 Docker 应用程序,请将选项添加-u $UID
到docker run
命令中。这将确保权限不会混乱。