从码头显示tkinter窗口

问题描述:

我有一个码头容器打开tkinter窗口,但它不断连接,因为它无法连接到主机的显示。在this post中给出的答案建议将安装X-11插座绑定到容器-v /tmp/.X11-unix:/tmp/.X11-unix:ro并将它的显示环境变量设置为主机-e DISPLAY=$DISPLAY的显示环境变量,但是由于这些都是特定于unix的路径/变量,所以它们将无法在其他操作系统上工作。我如何将显示信息传递给容器,以便tkinter可以以独立于主机操作系统的方式使用它?从码头显示tkinter窗口

您将无法将基于X11的Docker容器显示在非X11显示器上。如果你想让这个码头容器能够打开你的显示器的窗口,你需要运行X11。有Windows和OSX的服务器实现。

+0

那么有没有办法让我的码头容器在任何操作系统上显示一个窗口?如果是这样,这似乎是码头技术的巨大局限...... –

+0

@GWarner:它不是码头技术的限制,它只是计算机的工作原理。没有通用显示协议,服务器可以将信息发送到任何操作系统上的任何显示器。 X11在* nix这个词中做了很好的工作 - 任何docker容器都可以在任何其他* nix系统(使用X11)上打开窗口,但Windows和Mac都使用不同的显示技术。正如我在我的回答中所说的,如果您安装了X11应用程序,则可以在Windows和OSX上显示窗口。 –