Notieren Sie den verstopften Teil als Erinnerung, wenn Sie versuchen, mithilfe von Kaggles Docker Image in Ihrem Windows-Notizbuch einfach eine Umgebung zu erstellen.
Grundsätzlich verweise ich auf den Artikel von "Teniro Graffiti". Bitte beziehen Sie sich zuerst auf diesen Artikel, mit Ausnahme von Win10 Pro, dessen Betriebssystem Windows ist. Wenn Sie die Docker-Toolbox verwenden, ist dies hilfreich.
Beim Erstellen der Docker-Compose-Yaml-Datei wie im obigen Artikel wurde eine Fehlermeldung angezeigt.
version: "3"
services:
jupyter:
build: .
volumes:
- $PWD:/tmp/working
working_dir: /tmp/working
ports:
- 8888:8888
command: jupyter notebook --ip=0.0.0.0 --allow-root --no-browser
Ich erhalte die Fehlermeldung "Datenträgername ist zu kurz, Namen sollten mindestens zwei alphanumerische Zeichen enthalten". Ergebnisse der Untersuchung lautet die Notation der Umgebungsvariablen der Volumes in der yaml-Datei "$ PWD", jedoch in der jeweiligen Umgebung Es funktioniert nicht und es scheint besser, die Befehle $ {PWD}
und PWD (aktuellen Verzeichnispfad abrufen) auszuführen.
Es funktionierte also besser mit $ {PWD} / tmp / working
anstelle von $ PWD: / tmp / working
(da ich ein Docker-Anfänger bin, würde ich es begrüßen, wenn Sie den Grund für weitere Details kommentieren könnten).
Als ich es mit der von docker-compose up --build
modifizierten yaml-Datei ausführte, konnte ich den Container erfolgreich mit dem Jupyter-Notebook erstellen, das in der Kaggle-Analyseumgebung ausgeführt wurde.
Im Browser jedoch "http: // localhost: 8888 /? Token = XXXX"
Der Versuch, über den 8888-Port von Docker durch Eingabe der URL eine Verbindung zum Jupyter-Notebook herzustellen, funktioniert nicht.
Bei der Docker-Toolbox ist es nicht möglich, eine direkte Verbindung zu localhost (lokaler Host) herzustellen. Rufen Sie daher die IP-Adresse der virtuellen Maschine ab, die auf der Docker Toolbox ausgeführt wird, und geben Sie sie in die URL anstelle von localhost Ingenuity ein. / jusotech10 / items / b292ac38197926fc6afa) ist erforderlich.
> docker-machine ip default
192.168.XX.XX
Dann konnte ich mich erfolgreich mit dem Jupyter-Notebook verbinden.
Der oben erwähnte "Volume" -Teil der Yaml-Datei stellt das zu mountende Verzeichnis dar, aber in meiner Umgebung funktionierte das Mounten nicht und das Host-Betriebssystem (lokal) und das Verzeichnis auf der VM wurden nicht synchronisiert. Als Ergebnis der Untersuchung wurde festgestellt, dass die Ursache wie folgt war.
Die Einstellung für die Ordnerfreigabe von Oracle Virtual Box ist nicht festgelegt.
Die Version der VM-Startdatei (boot2docker.iso) auf der Docker-Seite stimmt nicht mit der Version von VirtualBox überein, die bei der Installation der Docker-Toolbox installiert wurde.
Starten Sie "Oracle VM VirtualBox Manager" und die derzeit verwendete Docker-Computer-VM
Sie können es bereitstellen, indem Sie Details> Freigegebener Ordner> Neuen freigegebenen Ordner hinzufügen> Automatisch einhängen / beibehalten aktivieren. Da die Docker-Toolbox für Windows VirtualBox durchläuft, ist der Docker-Befehl nur wirksam, wenn solche Einstellungen vorgenommen werden.
** VM VirtualBox-Symbol **
** VM VirtualBox Manager **
** Fenster mit Einstellungen für freigegebene Ordner mit VM-Details **
Selbst wenn ich ungefähr 1 eingestellt habe, hat die Halterung nicht funktioniert. Die Ursache ist, dass die zuerst installierte Version von VirtualBox und die Version der Startdatei von Dockers VM nicht übereinstimmten. (Ich weiß nicht warum das passiert ist)
Ich konnte die Startdatei so ändern, dass sie mit der aktuellen Version von VirtualBox übereinstimmt, aber ich habe VirtualBox auf die neueste Version neu installiert und gleichzeitig die Startdatei aktualisiert.
Die Boot-Datei wird als C: // Users / {user} /. Docker / machine / cache / boot2docker.iso
gespeichert. Diese Datei ist unter [** hier ] verfügbar (https://github.com/boot2docker/boot2docker/releases?after=v18.09.7).
Sie finden die Version von VirtualBox unter Hilfe> Über VirtualBox und können das Installationsprogramm unter [ hier **] herunterladen (https://www.virtualbox.org/wiki/Download_Old_Builds_5_2).
Ersetzen Sie die Startdatei, installieren Sie VirtualBox neu und entfernen Sie den alten Docker-VM-Computer mit VirtualBox Manager. Wenn Sie das Docker-Schnellstartterminal starten, wird automatisch eine neue VM für Docker basierend auf der Startdatei gestartet.
Obwohl es sich um ein kleines Detail handelt, entspricht der Unterschied zwischen der Boot-Dateiversion und der VirtualBox-Version der Version der Einstellungsdatei mit dem Namen GuestAdditions.iso, die zum Mounten des Host-Betriebssystems verwendet wird, wodurch das Mounten fehlschlägt.
Ich habe einen Docker-Container mit einer Yaml-Datei erstellt, die auf dem Docker-Image basiert. Da jedoch der Befehl zum Starten des Jupyter-Notizbuchs bei jedem Start des Containers enthalten ist, wird das Jupyter-Notizbuch jedes Mal mit dem Container gestartet. Zu diesem Zeitpunkt können Sie durch Starten des Containers mit dem folgenden Befehl und Anhängen auf den Container mit denselben Einstellungen zugreifen, außer dass Sie das Jupyter-Notizbuch nicht in den oben beschriebenen Einstellungen für die Yaml-Datei starten.
docker run -t -i --name {Containername} -p 8888:8888 -v $PWD:/tmp/working:/tmp/working -w /tmp/working {Name des Docker-Bildes} /bin/bash
Nach dem Erstellen verschiedener Installationen und Verzeichnisse, jupyter notebook --ip = 0.0.0.0 --allow-root --no-browser Sie können das Jupyter-Notebook auch mit
starten und verwenden. Ebenso können Sie die yaml-Datei erstellen und ausführen, die dem obigen Docker-Befehl entspricht. (Ich werde es hier weglassen)
Als Referenz sind die häufig verwendeten Docker-Befehle unten aufgeführt.
#Starten Sie die VM
docker-machine start {VM-Name}
#Liste der aktuell erstellten Bilder
docker images
#Liste der aktuell erstellten Container
docker ps -a
#Starten Sie den oben mit Name oder ID bestätigten Container
docker start {Containername/Container ID}
#Am gestarteten Container anbringen
docker attach {Containername/Container ID}
#Beenden Sie die VM
docker-machine stop {VM-Name}
#Löschen Sie nicht benötigte Bilder
docker rmi {Bildname/Bild-ID}
#Löschen Sie nicht benötigte Container
docker rm {Containername/Container ID}
Wenn Sie einfach mit einem handelsüblichen Windows-Notebook analysieren möchten, aber die Umwelt nicht verschmutzen möchten, ist Docker eine sehr nützliche Software. Ich habe die Punkte zusammengefasst, auf die ich gestoßen bin, als ich sie in der allgemeinen Windows 10 Home Edition eingeführt habe. Ich bin froh, wenn Sie es als Referenz verwenden können.