【发布时间】:2017-06-30 03:00:13
【问题描述】:
我目前正在尝试在 docker 容器中运行一些 GUI 应用程序。我一直在尝试jessie frazelle github 的那些。但是我可以构建图像(或从 docker hub 获取)并运行它们而不会出现任何明显的错误,但是,窗口不显示(我看不到应用程序)。
我在 Ubuntu 16.04 上运行 Docker 版本 1.13.1
图像创建自:
FROM debian:stretch
MAINTAINER Jessie Frazelle <jess@linux.com>
RUN apt-get update && apt-get install -y \
libreoffice \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT [ "libreoffice" ]
我使用的运行命令如下:
docker run -d \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/localtime:/etc/localtime \
-e DISPLAY=unix$DISPLAY
-v $HOME/Documents:/root/Documents \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name libreoffice \
jess/libreoffice
查了很多资料,发现上面的应该可以了,而且大部分人都说run命令中需要以下几行,
-v /tmp/.X11-unix:/tmp/.X11-unix
-e DISPLAY=unix$DISPLAY
但我仍然无法显示窗口。
- 我怎样才能让它工作?
- 我从根本上缺少什么?
任何帮助将不胜感激。
【问题讨论】:
-
这有一些很好的信息:fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker。您可能需要弄乱用户映射。
-
你试过
-e DISPLAY=$DISPLAY吗?容器执行libreoffice时是否有任何错误? -
另外,您是在拥有 X 显示器的同一主机上运行容器,还是从远程主机运行容器?
-
@johnharris85 - 感谢资源,我会好好阅读。
-
@Alvaro Carvajal - 是的,我试过这条线,但我收到一条错误消息,说没有可用的显示器。我目前正在我的本地机器上尝试它,但是一旦我得到这个工作就想尝试远程。本地与远程之间的设置是否存在差异。
标签: linux docker containers dockerfile x11-forwarding