Schreiben wir zum ersten Mal seit langer Zeit einen Qiita-Artikel im maschinellen Lernsystem! !! !! Ich dachte, aber jedes Mal, wenn es schwierig war, die Umgebung zu erstellen, war es ein Ärger, also war es ein Meta-ähnliches, dass ich versuchte, eine Umgebung dafür zu erstellen? Ich möchte einen Artikel schreiben.
In diesem Artikel möchte ich darüber schreiben, wie Sie mit Docker-compose auf einfache Weise eine unabhängige Python-Umgebung einrichten und über einen Browser eine Verbindung herstellen können. Wir werden auch darüber schreiben, wie Code interaktiv von VSCode ausgeführt wird und wie über einen Browser zugegriffen werden kann! Auch wenn diese nicht zum Schreiben von Qiita bestimmt sind, denke ich, dass sie Anfragen wie "Ich möchte es in einer sauberen Ausführungsumgebung ausführen" beantworten können!
Dieser Artikel behandelt nicht die Einführung von Docker, Docker-Compose und VS Code. Wenn Sie es nachschlagen, wird es leicht herauskommen (obwohl Docker unter Windows schwierig zu sein scheint). Da ich mich auf Datenwissenschaft spezialisiert habe, ist die Programmiersprache Python3. Ich werde nicht im Detail schreiben, aber R wird auch teilweise unterstützt. Da ich an Apple glaube, verwende ich Mac als Betriebssystem, aber ich denke, dass es wahrscheinlich in jeder Umgebung funktionieren wird, solange ich Docker verwenden kann.
In diesem Artikel werden wir die folgenden Schritte ausführen:
Der offizielle Jupiter-Github Docker-Stacs-Repository verfügt über zahlreiche Tools zum Erstellen einer Python-Umgebung mit Jupyter. Wenn Sie beispielsweise Deep Learning mit Tensorflow durchführen möchten, gehen Sie zu Tensorflow-Notizbuch und es sieht wie folgt aus. Sie können sehen, dass sich eine Docker-Datei in befindet.
In dieser Docker-Datei
ARG BASE_CONTAINER=jupyter/scipy-notebook
Es gibt einen Teil namens, aber dies soll eine zusätzliche Operation sein, die auf [scipy-notebook] basiert (https://github.com/jupyter/docker-stacks/blob/master/scipy-notebook/Dockerfile). Es ergibt Sinn. Und wenn Sie sich scipy-notebook ansehen, dasselbe
ARG BASE_CONTAINER=jupyter/minimal-notebook
Es steht geschrieben, dass. Dies liegt daran, dass die Umgebung für Tensorflow die Umgebung für Scipy (für Data Science mit Basic Python) und Tensorflow hinzugefügt wird und die Umgebung für Scipy die Umgebung ist, in der Scikit-Learn und Pandas zur Minimalumgebung hinzugefügt werden. Es bedeutet, dass es gibt. Ich werde nicht auf Details eingehen, aber es gibt andere Spark-Umgebungen und R-Umgebungen, und wenn Sie die Docker-Datei nach Bedarf verwenden, wird die Umgebung auf einmal gestartet! Da es sich um einen Docker handelt, müssen Sie, wenn Sie eine Bibliothek haben, die Sie persönlich hinzufügen möchten, nur ein wenig hinzufügen, was sehr praktisch ist!
Öffnen Sie also zuerst das Verzeichnis, das Sie vom Terminal aus ausführen möchten, und klonen Sie dieses Repository.
$ git clone https://github.com/jupyter/docker-stacks.git
Und zum Beispiel, wenn Sie ein Basis-Notebook verwenden möchten
$ cp -R ./docker-stacks/base-notebook ./
Wenn Sie das Tool als solches kopieren, ist der Download abgeschlossen.
Es ist mühsam, jedes Mal jupyter zu starten oder einen Befehl zu schreiben, der den Port angibt, daher werde ich ihn einfach mit Docker-Compose starten.
docker-compose.yml
version: '3'
services:
#Dienstname jupyterlab(Containername)Einstellen
jupyterlab:
#Aus Dockerfile erstellen(Um zusätzliche Einstellungen schreiben zu können)
build:
context: .
dockerfile: Dockerfile
#Gastgeber./Arbeit des Containers/home/Auf Jovyan montieren
# Jovian means "related to Jupiter"
volumes:
- "./work:/home/jovyan"
#Benutzer einstellen
user: root
environment:
B_UID: 1000
NB_GID: 100
GRANT_SUDO: "yes"
#Ermöglichen Sie den Zugriff auf das Gerät
privileged: true
#Ordnen Sie Host 8888 dem Container 8888 zu
ports:
- "8888:8888"
#Starten Sie neu, sofern nicht gestoppt
restart: unless-stopped
#Starten Sie jupyterlab, nachdem Sie den Container gestartet haben
command: start.sh jupyter lab --NotebookApp.token=''
Es ist in Ordnung, wenn Sie die obige Datei in derselben Ebene wie die Docker-Datei erstellen (ich befinde mich direkt unter dem Basis-Notebook-Verzeichnis). Wenn jedoch Port 8888 vom Host verwendet wird, empfiehlt es sich, XXXX: 8888 auf eine andere Nummer festzulegen.
Nachdem Sie die oben genannten Schritte ausgeführt haben, gehen Sie zum Terminal und gehen Sie zur gleichen Ebene wie docker-compose.yml.
$ docker-compose up -d
Schlag einfach. Geben Sie dann beim Start localhost: 8888 in den Browser ein![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265221/f45f76e0-4847 -8d03-4309-ddb2a79e5cd6.png) Das Jupyter-Labor wird so geöffnet. Es ist wirklich einfach. Da das Volume auf ./work / home / jovyan eingestellt ist, wird eine Datei, die von der Startseite von jupyterlab aus erstellt wird, auf der Hostseite in ./work angezeigt. Damit ist die Erstellung der Python-Umgebung abgeschlossen. Alles, was Sie tun müssen, ist, die erforderlichen Pakete gemäß dem Artikel zu installieren, den Sie schreiben möchten, und die Docker-Datei für die Reproduzierbarkeit freizugeben!
Dies ist genug, aber dieses Mal werden wir herausfordern, eine interaktive Ausführungsumgebung mit VS Code zu erstellen. Dies hat den Vorteil, dass Sie die py-Datei noch teilweise ausführen können. Ich denke, es ist sehr praktisch, schwierige Prozesse wie das Refactoring nur für ipynb-Dateien einfach zu debuggen und zu schreiben.
Dann werde ich sofort mit der Arbeit beginnen. Wenn VS-Code mit Docker und Remotedesktop-Erweiterung installiert ist, drücken Sie Befehlstaste + Umschalttaste + P, um die Registerkarte Befehlsoperation wie unten gezeigt zu öffnen. Verwenden Sie Ordner in Container öffnen, um das soeben festgelegte Werkzeug zu öffnen. (In meinem Fall öffnen Sie das Basis-Notebook)
Wenn Sie nun nach Config gefragt werden, wählen Sie From Docker-Compose. Dann warte eine Weile, Wenn ein solcher Bildschirm geöffnet wird, ist der Zugriff auf den Container vorerst erfolgreich.
Wenn Sie von Jupyter sprechen, geben Sie in der Erweiterungssuche jupyter ein und installieren Sie dieses oben angezeigte.
Wenn die Installation abgeschlossen ist, wird die Schaltfläche "Neu laden erforderlich" wie unten gezeigt angezeigt. Drücken Sie sie zum erneuten Laden.
Nach dem erneuten Laden erstellen wir eine Python-Datei, indem wir in ./work entsprechend jupyter_test.py festlegen. Geben Sie dann "# %%" wie unten gezeigt ein und Sie sehen Befehle wie "Run Cell" darüber! Wenn Sie diese Run Cell drücken, wird der im Block bis zum nächsten "# %%" geschriebene Code interaktiv ausgeführt. Wenn Sie dies bestätigen können, sind Sie erfolgreich!
Dieses Mal stellte ich mit der Motivation, einen Artikel über Qiita zu schreiben, vor, wie man auf einfache Weise eine saubere und reproduzierbare Python-Ausführungsumgebung einrichtet, und stellte sogar vor, wie man sie interaktiv mit VS Code ausführt. Selbst wenn Sie kein Blog schreiben, ist es praktisch, mehrere unabhängige Python-Umgebungen mit einem einzigen Befehl vorzubereiten. Immerhin wurde mir wieder klar, dass Docker erstaunlich ist (Wortschatz). In Zukunft möchte ich einige Artikel schreiben, die für die Datenwissenschaft in dieser Umgebung wertvoll sind. Danke, dass du bis zum Ende zugesehen hast! !!
Recommended Posts