Ich möchte auf meinem Linux Mint 18-Server (unter X11) ssh und mich in einem Docker-Container anmelden und iPython matplotlib-Plots an den lokalen Client (auch Mint) weiterleiten lassen. Alles im lokalen Netzwerk.
Die nächste Frage, die ich gefunden habe, war: /programming/25281992/alternatives-to-ssh-x11-forwarding-for-docker-containers
Anschließend konnte ich eine Plot-GUI vom Docker auf die Anzeige des lokalen Computers (ei, den Mint-Server) übertragen, indem eine -e DISPLAY=$DISPLAY
Option an den docker run
Befehl übergeben wurde. Ich kann auch mit -X
Option auf den Server ssh , um xeyes
Fenster zum Client zu bekommen .
Wenn ich jedoch mit -X
Option auf den Server ssh und -DISPLAY=localhost or client IP
mich bei dem Container anmelde, mit dem ausgeführt wird , kann ich immer noch kein Diagramm auf dem Clientcomputer abrufen.
Ich weiß, dass ich VNC verwenden könnte, um es zu umgehen. Aber wie kann ich das mit der X11-Weiterleitung richtig machen?
DISPLAY=$DISPLAY
sollte auch im SSH-Fall funktionieren (ssh -X
setzt die Variable auf den entsprechenden Wert, es ist nicht nur eine IP-Adresse). Hast du das versucht?Antworten:
Sie müssen diese Dinge lösen, damit es funktioniert:
Weitere Informationen dazu finden Sie in meiner Frage (und Antwort) hier auf StackOverflow: /programming/48235040/run-x11-application-in-a-docker-container-reliably-on-a -Server-verbunden-über-SSH
quelle
Um eine GUI-App in einem Remote-Docker-Container auszuführen, benötigen Sie keine X11-Weiterleitung vom Server. Sie können den X11-Server dazu bringen, TCP: 6000 abzuhören, und den Remote-Docker-Container ausführen, mit
-e DISPLAY=$IP:0
dem $ IP die IP-Adresse des Computers ist, auf dem der X11-Server ausgeführt wird.Ich habe es auf einem MacBook mit XQuarz zum Laufen gebracht, um einen Remote-Docker-Container auf Remote-Ubuntu anzuzeigen:
Auf macbook Verwendung socat auf den X11 - Server auf TCP machen hören, folgt Lauf GUIs mit Docker auf Mac OS X .
Auf Remote-Ubuntu
Dann werden die xeyes auf dem Macbook angezeigt
quelle
Container:
Klient:
Referenz:
udkyo / Dockerfile
quelle