为什么我不能运行X11应用程序?

时间:2019-08-30 22:13:00

标签: docker containers x11

因此,正如标题所述,我是docker的新手。 我下载并安装了archlinux/base容器,到目前为止,它似乎还不错。我已经设置了一些东西,并安装了一些软件包(包括xeyes),现在我想启动xeyes。为此,我通过运行docker ps找到了容器ID,然后在我的exec命令中使用了该ID,现在看起来像这样:

$ docker exec -it -e DISPLAY=$DISPLAY 4cae1ff56eb1 xeyes
Error: Can't open display: :0

为什么它仍然不起作用?此外,如何在不丢失其配置状态的情况下停止正在运行的实例?以前,我已经退出了该容器,而重新启动该容器后,所有配置和软件安装都已消失。那是不希望的。我该如何正确处理?

1 个答案:

答案 0 :(得分:2)

关于X显示器,您需要共享xserver套接字(注释docker在{{1}期间无法绑定装入volume })并设置exec(例如$DISPLAY):

Dockerfile

构建FROM archlinux/base RUN pacman -Syyu --noconfirm xorg-xeyes ENTRYPOINT ["xeyes"] 图片:docker

运行docker build --rm --network host -t so:57733715 .容器:docker

注意:如果发生docker run --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY so:57733715错误,则可以使用No protocol specified禁用主机检查,但是会出现警告(xhost +以获得更多信息)。

相关问题