因此,正如标题所述,我是docker
的新手。
我下载并安装了archlinux/base
容器,到目前为止,它似乎还不错。我已经设置了一些东西,并安装了一些软件包(包括xeyes
),现在我想启动xeyes
。为此,我通过运行docker ps
找到了容器ID,然后在我的exec命令中使用了该ID,现在看起来像这样:
$ docker exec -it -e DISPLAY=$DISPLAY 4cae1ff56eb1 xeyes
Error: Can't open display: :0
为什么它仍然不起作用?此外,如何在不丢失其配置状态的情况下停止正在运行的实例?以前,我已经退出了该容器,而重新启动该容器后,所有配置和软件安装都已消失。那是不希望的。我该如何正确处理?
答案 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 +
以获得更多信息)。