尝试在Docker中使用TkInter和Socat – Mac
这是我的步骤..
安装Socat和XQuartz
brew install socat brew cask install xquartz
打开XQuartz设置Socat Listener
open -a XQuartz socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
使用DISPLAY环境variables运行Docker容器
docker run -e DISPLAY=192.168.0.13:0 tkinter sh
这是我收到的错误。
// 容器
_tkinter.TclError:无法连接到显示“192.168.0.13:0”
// Socat
socat [37688] E connect(8,LEN = 2 AF = 1“”,2):参数无效
任何其他IP地址给我一个类似的错误,但没有出现在Socat中,所以我可以假设我的IP是正确的。
任何build议,将不胜感激。
你想在Docker中运行一个GUI应用程序吗? 你见过这种方法吗?
打开Xquartz之后,您必须允许来自networking客户端的连接。 我知道在Linux上,你必须分享你的.x11音量和启用xhost,它看起来像在Mac上,你必须这样做:
ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') xhost + $ip docker run -d --name displayContainer -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix <yourRepo>/<yourImage>