首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XQuartz:不能打开显示Mac

XQuartz:不能打开显示Mac
EN

Stack Overflow用户
提问于 2022-06-11 18:13:08
回答 2查看 1.3K关注 0票数 0

在使用these SO instructions (10.15.5)从Mac (10.15.5)上的Docker容器中运行一个简单的Xeyes应用程序时,我得到了以下结果:

$ docker运行-it -e DISPLAY="${IP}:0“-v /tmp/.X11-unix:/tmp/.X11-unix so_xeyes

/work # xeyes错误:无法打开显示: 192.168.1.9:0

以下是复制的步骤:

$ brew install --cask xquartz

Dockerfile:

代码语言:javascript
复制
# Base Image
FROM alpine:latest

RUN apk update && \
    apk add --no-cache xeyes

# Set a working directory
WORKDIR /work

# Start a shell by default
CMD ["ash"]

用以下方式建立图像:

$ docker build -t so_xeyes .

并使用以下内容运行Docker容器/xeyes:

代码语言:javascript
复制
# Set your Mac IP address
IP=$(/usr/sbin/ipconfig getifaddr en0)
echo $IP
192.168.1.9

# Allow connections from Mac to XQuartz
/opt/X11/bin/xhost + "$IP"
192.168.1.9 being added to access control list

# Run container
docker run -it -e DISPLAY="${IP}:0" -v /tmp/.X11-unix:/tmp/.X11-unix so_xeyes

当在容器内时,键入:xeyes

但是,我得到以下错误:Error: Can't open display: 192.168.1.9:0

有没有人知道我如何解决这个问题或进一步调查?

EN

回答 2

Stack Overflow用户

发布于 2022-06-12 05:28:06

默认情况下,X11不通过TCP/IP侦听。如果你想要在设置中,你可以启用它,但我认为这在这里没有必要。Docker应该能够通过launchd将流量路由到unix域套接字设置以供显示(例如: /private/tmp/com.apple.launchd.jTIfZplv7A/org.xquartz:0). )。

如果这不起作用,您应该联系Docker添加对此的支持,因为它比使用TCP进行X11通信要好得多。

票数 1
EN

Stack Overflow用户

发布于 2022-06-12 15:48:12

@MarkSetchell给了我一个提示,建议我修改XQuartz首选项>安全性。

但是,即使在选择“允许来自网络客户端的连接”之后,它仍然无法工作。

然后我在这里找到了一个Gist,它给了我一些更多的信息,因为有人评论说,在他们做了更改之后,他们需要重新启动他们的Mac (再次):https://gist.github.com/cschiewek/246a244ba23da8b9f0e7b11a68bf3285

所以,在我做了改变并重新启动我的Mac之后,它就起作用了!

谢谢你带我到最后的答案!

还要注意:您不需要批量挂载.X11目录才能工作:

docker run -it -e DISPLAY="${IP}:0" so_xeyes

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

https://stackoverflow.com/questions/72586838

复制
相关文章

相似问题

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