Führen Sie XFCE (oder andere Desktop -Umgebungen) auf Jupyter aus.
Dies basiert auf https://github.com/ryanlovett/nbnovnc.
Wenn diese Erweiterung gestartet wird, wird ein Linux-Desktop auf dem Jupyter-Single-User-Server ausgeführt und mithilfe von VNC über Jupyter an Ihrem Browser an Ihrem Browser teilgenommen.
Für diese Erweiterung muss ein VNC -Server auf dem System installiert werden (wahrscheinlich im Containerbild). Der am meisten getestete VNC -Server ist Tigervnc, während Turbovnc auch funktioniert. Jeder VNC -Server, der in $PATH als vncserver verfügbar ist, wird verwendet, es wurde jedoch keine wirklichen Tests außerhalb dieser Server durchgeführt.
Beispielsweise finden Sie in der Dockerfile in diesem Repository, das Tigervnc und XFCE4 installiert.
Installieren Sie dieses Paket selbst mit pip von PyPI :
pip install jupyter-remote-desktop-proxyInstallieren Sie die Pakete, die erforderlich sind, um einen VNC -Server und die tatsächliche Linux -Desktop -Umgebung bereitzustellen. Sie müssen eine Desktop -Umgebung auswählen (es gibt viele!) - Hier sind die Pakete für die Verwendung von Tigervnc und die leichte XFCE4 -Desktop -Umgebung auf Ubuntu 22.04:
dbus-x11
xfce4
xfce4-panel
xfce4-session
xfce4-settings
xorg
xubuntu-icon-theme
tigervnc-standalone-server
tigervnc-xorg-extension
Die empfohlene Möglichkeit, diese zu installieren, erfolgt von Ihrem Linux -Systempaket -Manager der Wahl (z. B. APT).
Um ein solches Notizbuch zu drehen, erstellen Sie zuerst den Container:
$ docker build -t $( whoami ) / $( basename ${PWD} ) .Jetzt können Sie das Bild ausführen:
$ docker run --rm --security-opt seccomp=unconfined -p 8888:8888 $( whoami ) / $( basename ${PWD} )
Executing the command: jupyter notebook
[I 12:43:59.148 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 12:44:00.221 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 12:44:00.221 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 12:44:00.224 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 12:44:00.225 NotebookApp] The Jupyter Notebook is running at:
[I 12:44:00.225 NotebookApp] http://924904e0a646:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] or http://127.0.0.1:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:44:00.229 NotebookApp]
To access the notebook, open this file in a browser:
file:///home/jovyan/.local/share/jupyter/runtime/nbserver-8-open.html
Or copy and paste one of these URLs:
http://924904e0a646:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
or http://127.0.0.1:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
* snip *Gehen Sie nun zu der gezeigten URL und Sie werden mit einem XFCE -Desktop großartig sein.
Beachten Sie den --security-opt seccomp=unconfined Parameter -Dies ist erforderlich, um Dämonen (wie DBUS, Pulseaudio usw.) zu starten, die für den Arbeiten von Linux -Desktop erforderlich sind. Dies ist die Option, mit der Kubernetes standardmäßig ausgeführt wird, sodass die meisten Kubernetes -basierten JupyterHubs keine Änderungen benötigen, damit dies funktioniert.