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 !
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.
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.
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.
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.
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.
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
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
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.