2017-08-01 5 views
0

Ich habe einen Docker Container, der eine tkinter Fenster öffnet sich aber immer wieder abstürzt, weil es nicht auf die Anzeige des Host-Rechners anschließen. Die Antwort in this post gegeben empfehlen, binden die X-11-Buchse Behälter Montage -v /tmp/.X11-unix:/tmp/.X11-unix:ro und Einstellung ist es Anzeige Umgebungsvariable dass der Host-Maschine -e DISPLAY=$DISPLAY aber da diese beiden Unix sind bestimmte Pfade/Variablen werden sie nicht auf anderen Betriebssystemen arbeiten. Wie kann ich die Anzeigeinformationen an den Container übergeben, damit tkinter sie so verwenden kann, dass das Host-Betriebssystem unabhängig ist?Anzeige tkinter Fenster von Docker

Antwort

0

Sie werden nicht in der Lage sein, einen X11-basierten Docker-Container auf einer Nicht-X11-Display angezeigt zu bekommen. Wenn Sie möchten, dass dieser Andock-Container Fenster für Ihr Display öffnen kann, müssen Sie X11 ausführen. Es gibt Serverimplementierungen für Windows und OSX.

+0

Gibt es also keine Möglichkeit, meinen Docker-Container dazu zu bringen, auf jedem Betriebssystem ein Fenster anzuzeigen? Wenn das der Fall ist, scheint dies eine riesige Einschränkung der Docker-Technologie zu sein ... –

+0

@GWarner: Es ist keine Einschränkung der Docker-Technologie, es ist einfach, wie Computer funktionieren. Es gibt kein universelles Anzeigeprotokoll, bei dem ein Server Informationen an eine beliebige Anzeige auf einem Betriebssystem senden kann. X11 löst das im * nix-Wort sehr gut - jeder Docker-Container kann Fenster auf jedem anderen * nix-System (das X11 verwendet) öffnen, aber sowohl Windows als auch Mac verwenden unterschiedliche Anzeigetechnologien. Wie ich in meiner Antwort gesagt habe, können Sie Windows unter Windows und OSX anzeigen, wenn Sie eine X11-Anwendung installieren. –