Apropos Docker-Container für Data Science: Es gibt scipy-notebook, das von jupyter offiziell verteilt wird. Wenn Sie sich jedoch das Dockerfile ansehen, basiert es auf conda. Es steht geschrieben. Aber ich möchte Conda aus religiösen Gründen nicht benutzen. Dieses Mal werde ich eine Docker-Datei schreiben, um eine auf pip3 basierende Umgebung für Data Science zu erstellen.
Artikel, auf die verwiesen wird Die Geschichte des Versuchs, mit Docker eine maschinelle Lernumgebung zu erstellen
・ Basierend auf dem offiziellen Python-Docker-Image
・ Verwenden Sie pip3
-Laden Sie nur die erforderlichen Module aus require.txt
・ Ich möchte mit "google-cloud-bigquery" eine Verbindung zu BigQuery herstellen. Fügen Sie daher das Cloud-SDK ein
・ Ich möchte mit jupyterlab + plotly visualisieren, also füge Node.js ein
Dockerfile
#Python 3.Basierend auf 8
#Referenz: https://qiita.com/penpenta/items/3b7a0f1e27bbab56a95f
FROM python:latest
USER root
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y sudo \
&& apt-get install -y lsb-release \ # google-cloud-Erforderlich bei der Installation von SDK
&& pip3 install --upgrade pip
#Arbeitsverzeichnis ändern,Das musst du nicht
# WORKDIR /home/{Geeigneter Benutzername}
#Anforderungen, die im Voraus und im selben Ordner wie die Docker-Datei erstellt wurden.Installieren Sie txt
COPY requirements.txt ${PWD}
RUN pip3 install -r requirements.txt
#Installieren Sie das Cloud SDK
# https://cloud.google.com/sdk/docs/downloads-apt-get
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
apt-get update -y && apt-get install google-cloud-sdk -y
#Knoten zum Plotten verwenden.installiere js
# https://github.com/nodesource/distributions/blob/master/README.md
RUN curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - \
&& sudo apt-get install -y nodejs
#Unterstützen Sie Plotly mit Jupyter Lab
ENV NODE_OPTIONS=--max-old-space-size=4096
RUN jupyter labextension install @jupyter-widgets/[email protected] --no-build \
&& jupyter labextension install [email protected] --no-buil \
&& jupyter labextension install [email protected] --no-build \
&& jupyter lab build
ENV NODE_OPTIONS=
Schreiben Sie die Module, die dieses Mal installiert werden sollen, in require.txt
.
Feste Version ist Ihre Wahl
requirements.txt
numpy
pandas
matplotlib
seaborn
scikit-learn
scrapy
jupyter
plotly
google-cloud-bigquery
jupyterlab
Legen Sie die beiden oben genannten Dateien in einem geeigneten Ordner ab und verschieben Sie sie in dieses Verzeichnis. Danach können Sie die folgenden Befehle der Reihe nach ausführen
#Erstellen Sie ein Docker-Image
docker build --rm -t {Name des Docker-Bildes} .
#Erstellen Sie einen Docker-Container
#Portweiterleitung zur Verbindung innerhalb und außerhalb von Docker(-p)Machen
#Hängen Sie einen Ordner außerhalb von Docker ein, damit Dateien auch dann nicht verschwinden, wenn Sie den Docker-Container löschen(-v)Machen
docker run -itp {Port außerhalb des Containers}:{Port in den Container} -v {Absoluter Pfad des Ordners außerhalb des Containers,Am Ende"/"Nicht anhängen}:{Absoluter Pfad, an dem Sie den Ordner im Container bereitstellen möchten+Der Name des Ordners, der in Docker bereitgestellt werden soll} --name {Der Name des Containers} {Name des Bildes, aus dem es erstellt wurde} /bin/bash
#Jupyter starten
jupyter lab --ip=0.0.0.0 --allow-root --port {Port in den Container}
#Cloud SDK-Zertifizierung
gcloud init
# google-cloud-API-Authentifizierung für Bigquery
hogehoge
export GOOGLE_APPLICATION_CREDENTIALS={Absoluter Pfad der Authentifizierungsdatei}
export GOOGLE_CLOUD_PROJECT={Projektname zum Verbinden}
Recommended Posts