为什么我不能 运行 X11 应用程序?
why can i not run a X11 application?
因此,正如标题所述,我是 docker
新手。
我下载并安装了 archlinux/base
容器,到目前为止它似乎运行良好。我已经设置了一些东西,并安装了一些软件包(包括 xeyes
),现在我想启动 xeyes
。为此,我通过 运行 docker ps
找到了 CONTAINER ID,然后在我的 exec 命令中使用了该 ID,现在看起来像:
$ docker exec -it -e DISPLAY=$DISPLAY 4cae1ff56eb1 xeyes
Error: Can't open display: :0
为什么还是不行?另外,如何在不丢失其配置状态的情况下停止我的 运行 实例?以前我已经退出容器,当我重新启动它时,我所有的配置和软件安装都消失了。这是不希望的。我该如何正确处理?
关于 X 显示器,您需要共享 xserver
套接字(注意:docker
无法绑定安装 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 +
禁用主机检查,但有一个警告(man xhost
了解更多信息)。
因此,正如标题所述,我是 docker
新手。
我下载并安装了 archlinux/base
容器,到目前为止它似乎运行良好。我已经设置了一些东西,并安装了一些软件包(包括 xeyes
),现在我想启动 xeyes
。为此,我通过 运行 docker ps
找到了 CONTAINER ID,然后在我的 exec 命令中使用了该 ID,现在看起来像:
$ docker exec -it -e DISPLAY=$DISPLAY 4cae1ff56eb1 xeyes
Error: Can't open display: :0
为什么还是不行?另外,如何在不丢失其配置状态的情况下停止我的 运行 实例?以前我已经退出容器,当我重新启动它时,我所有的配置和软件安装都消失了。这是不希望的。我该如何正确处理?
关于 X 显示器,您需要共享 xserver
套接字(注意:docker
无法绑定安装 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 +
禁用主机检查,但有一个警告(man xhost
了解更多信息)。