webentwicklung-frage-antwort-db.com.de

Greifen Sie auf das Jupyter-Notebook zu, das im Docker-Container ausgeführt wird

Ich habe ein Docker-Image mit Python-Bibliotheken und Jupyter erstellt. Ich starte den Container mit der Option -p 8888:8888, um Ports zwischen Host und Container zu verknüpfen. Wenn ich einen Jupyter-Kernel im Container starte, läuft er auf localhost:8888 (und findet keinen Browser). Ich habe den Befehl jupyter notebook verwendet.

Aber welche IP-Adresse muss ich von meinem Host verwenden, um mit Jupyter im Browser des Host zu arbeiten? 

Mit dem Befehl ifconfig finde ich eth0, docker, wlan0, lo ...

Vielen Dank ! 

35
J.Guillaumin

Sie müssen Ihr Notebook mit 0.0.0.0: jupyter notebook -i 0.0.0.0 ausführen. Wenn Sie localhost ausführen, ist es nur innerhalb des Containers verfügbar.

41
Mateusz Moneta

Hostmaschine: docker run -it -p 8888:8888 image:version 

Im Behälter: jupyter notebook --ip 0.0.0.0 --no-browser --allow-root 

Hostcomputer greifen Sie auf diese URL zu: localhost:8888/tree‌​ 

Wenn Sie sich zum ersten Mal anmelden, wird auf dem Terminal ein Link angezeigt, über den Sie sich mit einem Token anmelden können.

13

So rufen Sie den Link zu Ihrem Jupyter-Notebook-Server auf:

Nach Ihrem docker run-Befehl sollte automatisch ein Hyperlink generiert werden. Es sieht ungefähr so ​​aus: http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work

Wenn Sie den Link später wieder aufrufen möchten, können Sie docker exec -it <docker_container_name> jupyter notebook list eingeben.

6
Josephine M. Ho

Der Befehl docker run ist zwingend erforderlich, um einen Port für den Container zu öffnen, der die Verbindung von einem Host-Browser aus zulässt. Den Port dem Docker-Container mit -p zuweisen und das Jupyter-Image aus Ihrem docker images auswählen. 

docker run -it -p 8888:8888 image:version

Starten Sie im Container das Notizbuch, in dem Sie den geöffneten Port zuweisen:

jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root

Greifen Sie über Ihren Desktops-Browser unter http: // localhost: 8888 .__ auf das Notebook zu. Das Notebook fordert Sie auf, ein Token einzugeben, das beim Erstellen des Notebooks generiert wurde.

2
drillep

Sie können den Befehl jupyter notebook --allow-root --ip[of your container] verwenden oder mit der Option --ip0.0.0.0 auf alle IP-Adressen zugreifen.

2
Hemant jajoo

Schauen Sie sich das Torus-Projekt an, das vor kurzem Manifold Open verwendet wurde. Wir wollten eine einfache Möglichkeit für unsere ML-Ingenieure, neue Projekte mit einer konsistenten Entwicklungsumgebung im gesamten Team anzustoßen. Dieser Python-Cookie-Cutter erstellt eine neue Projektstruktur für Sie, die eine Docker-Datei enthält, die ein vorgebackenes ML-Entwickler-Image verwendet, das wir in Docker Hub eingefügt haben, und eine Docker-Compose-Konfiguration, die die gesamte Portweiterleitung für Sie übernimmt. Die Konfiguration wird geschrieben, um einen offenen Port auf Ihrem Host-Computer auszuwählen, der an den Notebook-Server weitergeleitet wird, der unter 8888 im Container ausgeführt wird. Kein Problem mehr mit dem Betrieb mehrerer Notebook-Server auf Ihrem Computer! Hoffentlich ist das hilfreich! 

Github Repo: https://github.com/manifoldai/docker-cookiecutter-data-science

Warum wir es gebaut haben (mit Demo): https://medium.com/manifold-ai/torus-a-toolkit-for-docker-first-data-science-bddcb4c97b52

1
abng88

Das Folgende ist, wie ich es mit Docker Toolbox unter Windows 7 zum Laufen bekomme. 

Wenn Sie die Docker-Toolbox verwenden, öffnen Sie das Docker Quickstart-Terminal und notieren Sie die IP-Adresse hier:

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

Sobald Sie die Docker-Befehle auf der Installationswebsite von tensorflow ausgeführt haben, :

docker pull tensorflow/tensorflow                  # Download latest image
docker run -it -p 8888:8888 tensorflow/tensorflow  # Start a Jupyter notebook server

Sie erhalten eine Nachricht wie diese:

Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
    http://127.0.0.1:8888/?token=d6e80acaf08e09853dc72f6b0f022b8225f94f

Ersetzen Sie im Host 127.0.0.1 durch 192.168.99.100 und verwenden Sie den Rest dieser URL

1
ivan7707

Im Container können Sie Folgendes ausführen, um es auf Ihrem lokalen Computer verfügbar zu machen (mithilfe der IP-Adresse Ihres Docker-Computers). 

jupyter notebook --ip 0.0.0.0 --allow-root

Je nach den Einstellungen Ihres Containers müssen Sie möglicherweise das Flag "--allow-root" nicht angeben.

0
SeekingAlpha