首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用X11在docker中运行GUI应用程序不工作

使用X11在docker中运行GUI应用程序不工作
EN

Stack Overflow用户
提问于 2019-11-17 23:38:58
回答 1查看 1.3K关注 0票数 1

我试图使用X11转发在docker容器中运行一个GUI应用程序,即使在绑定Xauthority文件时也无法让它工作。

代码语言:javascript
复制
# Dockerfile
FROM alpine

RUN apk --no-cache add xterm
RUN adduser --disabled-password --home /home/user --uid 1000 --gecos 'USER' user
WORKDIR /home/user
USER user

CMD /usr/bin/xterm

我尝试过运行以下命令,但没有一条成功:

代码语言:javascript
复制
docker run -it --rm -e DISPLAY image
docker run -it --rm -e DISPLAY -v /tmp/.X11-unix image
docker run -it --rm -e DISPLAY -e XAUTHORITY -v $XAUTHORITY image
docker run -it --rm -e DISPLAY -e XAUTHORITY -v $XAUTHORITY -v /tmp/.X11-unix image
docker run -it --rm --net=host --privileged -e DISPLAY -e XAUTHORITY -v $XAUTHORITY -v /tmp/.X11-unix image

基本上,它们都产生相同的错误Can't open display: :0。至此,我已经用完了在StackOverflow和其他教程中讨论的所有选项。

我不确定Xauthority文件上的权限是否重要,但是当我从容器内部绑定时,它具有root:root权限,其中主机具有user:user权限。

我也使用过(Can you run GUI applications in a Docker container?),但在答案方面没有任何成功。

EN

回答 1

Stack Overflow用户

发布于 2022-01-04 19:46:32

您是否在运行容器之前尝试过xhost + (因此本地X服务器将接受来自容器的连接)?您仍然需要设置显示等,如下所示:

docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e "DISPLAY=unix:0.0" --device /dev/dri --privileged -it --rm yourapp

注意:xhost +允许来自任何地方的X连接,所以要小心!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58906272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档