[Einführung in Docker] ~ Kürzeste Erklärung bis zum Start von Jupyter Lab ~

Einführung

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!

Annahme

・ Wir führen in Mac-Umgebung

Inhaltsverzeichnis

  1. Überblick über die Umweltbauarbeiten
  2. Docker-Installation
  3. Erstellen Sie eine Docker-Datei
  4. Bilderzeugung
  5. Containererstellung
  6. Umgebung löschen

1. Überblick über die Umweltbauarbeiten

Der grundlegende Ablauf der Umgebungskonstruktion mit Docker ist wie folgt

  1. Erstellen einer Docker-Datei
  2. Bild erstellen
  3. Container erstellen und starten

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)
-

image.png Schematische Darstellung (https://docs.docker.jp/engine/understanding-docker.html)

2. Docker-Installation

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/ スクリーンショット 2020-11-22 21.09.33.png

3. Erstellen einer Docker-Datei

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)

4. Bilderzeugung

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

5. Containererstellung

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 image.png

Jupiter-Labor-Bildschirm image.png

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) image.png 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

6. Umgebung löschen

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

schließlich

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!

Referenz

・ 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

[Einführung in Docker] ~ Kürzeste Erklärung bis zum Start von Jupyter Lab ~
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
Einführung in Linux Container / Docker (Teil 1)
Einführung in Linux Container / Docker (Teil 2)
Einführung in Slay the Spire Mod Development (1) Einführung
Untersuchen Sie den Ersatz von Docker zu Podman.
Einführung in Java zum ersten Mal # 2
Einführung in Ratpack (3) - Hallo Welt, detaillierte Erklärung
Ausgabe des Buches "Einführung in Java"
Einführung in die praktische Containerentwicklung von Docker / Kubernetes
[Docker] Erstellen Sie die Ausführungsumgebung von Jupyter Lab mit Docker
Erläuterung, bis der ursprüngliche Antrag abgeschlossen ist
[Einführung in Docker] Offizielles Tutorial (japanische Übersetzung)
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch