Dieser Artikel soll Docker-Anfängern helfen, auf schnellste Weise zum Jupyter-Labor zu gelangen. Tiefes Gerede über Docker-Fachbegriffe wie Container und Bild wurde übersprungen. Bitte googeln Sie den Teil, der Ihnen wichtig ist.
Wenn Sie den Artikel gelesen und hilfreich gefunden haben, würde ich mich freuen, wenn Sie LGTM drücken könnten!
・ Wir führen in Mac-Umgebung
Der grundlegende Ablauf der Umgebungskonstruktion mit Docker ist wie folgt
Jedes in einem Wort erklären
der Begriff | Kommentar | Referenz-URL |
---|---|---|
Dockerfile | Entwurfsdokument der zu erstellenden Umgebung (Anhand dieser Datei können Sie auf einen Blick erkennen, um welche Umgebung es sich handelt) |
- |
image | Doppelte Umgebungsdatei mit Umgebungsinformationen (Sie können viele Umgebungen mit einem Bild erstellen. |
Tutorial zum Verständnis von Docker-Bildern |
container | Umgebungsinstanz aus Bild generiert (Sie können die Umgebung mit Versuch und Irrtum einrichten oder zerstören) |
- |
Schematische Darstellung (https://docs.docker.jp/engine/understanding-docker.html)
Registrieren Sie sich beim Docker Hub und laden Sie die Desktop-Version von "Erste Schritte mit Docker Desktop" auf der oberen Seite herunter. https://hub.docker.com/
Erstellen Sie ein Docker-Verzeichnis auf dem Desktop und erstellen Sie die folgende Docker-Datei darin
Desktop/docker/Dockerfile
#Ziehen Sie das Image von anaconda3 vom Docker Hub (https).://hub.docker.com/r/continuumio/anaconda3)
#Dieses Image ist die Umgebung, in der anaconda3 unter ubuntuOS eingerichtet ist.
FROM continuumio/anaconda3:2020.07
#Nehmen Sie Änderungen an der jupyter-Konfigurationsdatei vor (andernfalls jupyter-Labor startet nicht)
RUN jupyter notebook --generate-config
WORKDIR /root/.jupyter
RUN echo 'c.NotebookApp.allow_root = True' >> jupyter_notebook_config.py && \
echo 'c.NotebookApp.ip = "0.0.0.0"' >> jupyter_notebook_config.py && \
echo 'c.NotebookApp.token = "xxxx"' >> jupyter_notebook_config.py && \
echo 'c.NotebookApp.port = 8888' >> jupyter_notebook_config.py && \
echo 'c.NotebookApp.open_browser = False' >> jupyter_notebook_config.py
#Informationen zu den Sicherheitseinstellungen finden Sie unter der folgenden URL
#https://jupyter-notebook.readthedocs.io/en/latest/security.html#server-security
#https://qiita.com/SaitoTsutomu/items/aee41edf1a990cad5be6
#Erstellen Sie ein Arbeitsverzeichnis
RUN mkdir -p /home/work
WORKDIR /home/work
#Legen Sie den Standardbefehl fest (Befehl wird ausgeführt, wenn der Container gestartet wird)
CMD [ "jupyter", "lab"]
** Dockerfile-Anweisungsliste **
bestellen | Kommentar |
---|---|
FROM | Ziehen Sie das Bild vom Docker-Hub (Wenn sich lokal ein entsprechendes Bild befindet, wird kein Pull ausgeführt) |
RUN | Führen Sie den Linux-Befehl aus (Führen Sie den Befehl in der Umgebung des gezogenen Images aus, um die Umgebung anzupassen) |
WORKDIR | Ändern Sie das aktuelle Verzeichnis (Beachten Sie, dass die Verschiebung mit dem Befehl linux cd nur vorübergehend ist.) |
CMD | Standardbefehl festlegen (Befehl wird ausgeführt, wenn der Container gestartet wird) |
Es gibt nicht so viele Befehle. Wenn Sie interessiert sind, überprüfen Sie bitte andere (http://docs.docker.jp/v17.06/engine/reference/builder.html)
Führen Sie den Befehl wie folgt aus, um das Bild zu erstellen und zu überprüfen
Ein Bild erstellen
#Wechseln Sie in das Verzeichnis mit der Docker-Datei
cd desktop/docker/Dockerfile
#Geben Sie das aktuelle Verzeichnis an und erstellen Sie das Image(-Geben Sie den Namen des Bildes mit der Option t an)
docker build . -t anaconda-env
Bestätigung des erstellten Bildes
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
anaconda-env latest 8aacbb4fe3dc 10 hours ago 2.76GB
Wenn es wie oben angezeigt wird, ist die Bilderstellung abgeschlossen
Das Erstellen des Containers schließt schließlich die Erstellung der Jupyter-Lab-Ausführungsumgebung ab! Geben Sie die folgenden Befehle der Reihe nach ein
#Erstellen Sie ein Verzeichnis zum Speichern auf der lokalen Hostseite
mkdir volume
#Erstellen Sie einen Container
docker run -v $(pwd)/volume:/home/work -p 1111:8888 --name anaconda-container -it anaconda-env
Optionserklärung
Möglichkeit | Kommentar |
---|---|
-v | - Geben Sie das Speicherziel einiger Verzeichnisse im Container lokal an -In dem obigen Befehl Container:/home/In Arbeit speichern wird auf Host gespeichert: Volume - Da die Daten auch dann nicht gelöscht werden, wenn der Container gelöscht wird, werden der Quellcode und die Trainingsdaten in diesem Verzeichnis verwaltet. ・ Weil es notwendig ist, mit einem absoluten Pfad anzugeben$(pwd)Weist das aktuelle Verzeichnis zu |
-p | Stellt die Verbindung zwischen localhost und dem Port im Container dar (Im Fall der obigen Spezifikation, wenn Sie eine Verbindung zu Port 1111 von localhost herstellen, stellen Sie eine Verbindung zu Port 8888 im Container her. |
--name | Legen Sie den Namen des zu generierenden Containers fest |
-it | Magie (-i:Akzeptiert Eingaben über die Befehlszeile.-t:Eine Kombination davon, die die Befehlszeilenanzeige bereinigt) |
Wenn Sie den obigen Befehl ausführen, wird jupyter-lab gestartet. Greifen Sie daher auf die folgende URL zu http://localhost:1111
Dieses Mal lautet das Passwort in der Docker-Datei ** 'xxxx' ** (Wenn Sie wissen möchten, wie Sie das Passwort festlegen, lesen Sie bitte die folgende URL). https://jupyter-notebook.readthedocs.io/en/latest/security.html#server-security
Anmeldebildschirm
Jupiter-Labor-Bildschirm
Zu diesem Zeitpunkt hat Docker das Jupiter-Labor gestartet! Danke für deine harte Arbeit!
Überprüfen Sie am Ende dieses Kapitels den Status des erstellten Containers Kehren Sie zum Linux-Bildschirm zurück und verwenden Sie in dem Zustand, in dem jupyter-lab ausgeführt wird (siehe unten), ** "Strg + p + q" **, um den Container vorübergehend zu verlassen. (Der Container wird nicht angehalten) Sie können sehen, dass der Container mit dem folgenden Befehl gestartet wird
#Überprüfen Sie den Status des Containers
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
22093b0f68f1 anaconda-env "jupyter lab" 25 minutes ago Up 25 minutes 0.0.0.0:1111->8888/tcp anaconda-container
Übrigens können Sie den Container mit dem folgenden Befehl stoppen und ausführen.
docker stop anaconda-container
#Behälter stoppen(Exited)bestätigen(-Sie können den gestoppten Container auch mit a überprüfen)
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
22093b0f68f1 anaconda-env "jupyter lab" 37 minutes ago Exited (0) 26 seconds ago anaconda-container
Wenn Sie es erneut starten möchten, führen Sie den folgenden Befehl aus
docker start anaconda-container
#juypter-Wenn Sie mit dem Labor beginnen
docker exec -it anaconda-container jupyter lab
#Beim Herstellen einer Verbindung zur CUI der Umgebung(Wenn Sie Conda installieren möchten, etc.)
docker exec -it anaconda-container bash
Führen Sie die folgenden Schritte aus, um den Behälter und das Bild zu entfernen
#Der Container kann nicht ohne anzuhalten gelöscht werden
docker stop anaconda-container
#Container löschen
docker rm anaconda-container
#Lösche Bild
docker rmi anaconda-env
Beim Erstellen eines Bildes mit Dockerfile bleibt Chashe als Speicherpunkt erhalten (Chash wird für jeden RUN-Befehl in Dockerfile generiert). chashe wird gespeichert, damit chas bis zum Speicherpunkt wiederverwendet werden kann, auch wenn beim Generieren der Docker-Datei ein Fehler aufgetreten ist. Vergessen Sie nicht, dies zu löschen, da Chashe die Kapazität ohne Ihr Wissen überfordern kann.
#Cache löschen
docker builder prune
Ich habe bisher alle Schritte durchlaufen, aber ich glaube, ich konnte unerwartet reibungslos eine Umgebung erstellen. ?? Sobald Sie Docker werden, können Sie mit Dockerfile die problematische Erstellung von Umgebungen automatisieren und problemlos auf andere PCs / Server migrieren. Es scheint der Standard für den Aufbau einer Umgebung für Datenanalyse / KI-Entwicklung und Webentwicklung zu sein, daher sollte es nicht schaden, sie gedrückt zu halten. Ich habe viele detaillierte Erklärungen übersprungen. Wenn Sie also umfassend lernen möchten, versuchen Sie bitte, mit Referenzmaterialien zu lernen! (Besonders der Udemy-Kurs wird empfohlen!)
Wenn Sie den Artikel gelesen und hilfreich gefunden haben, würde ich mich freuen, wenn Sie LGTM drücken könnten!
・ Einführung in Docker https://datawokagaku.com/whatisdocker/ ・ Udemy-Kurs (Empfohlen für diejenigen, die umfassend lernen möchten) https://www.udemy.com/course/aidocker/
Recommended Posts