En parlant de conteneurs Docker pour la science des données, il existe scipy-notebook distribué par jupyter official, mais si vous regardez le Dockerfile, il est basé sur conda. Il est écrit. Mais je ne veux pas utiliser le conda pour des raisons religieuses. Donc, cette fois, j'écrirai un Dockerfile pour créer un environnement pour la science des données basé sur pip3.
Articles référencés L'histoire de la tentative de création d'un environnement d'apprentissage automatique à l'aide de Docker
・ Basé sur l'image Docker officielle de Python
・ Utilisez pip3
-Charger uniquement les modules requis à partir de requirements.txt
・ Je souhaite me connecter à BigQuery avec google-cloud-bigquery
, alors insérez le SDK Cloud
・ Je veux visualiser avec jupyterlab + plotly, alors insérez Node.js
Dockerfile
#Python 3.Basé sur 8
#référence: 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-Requis lors de l'installation de sdk
&& pip3 install --upgrade pip
#Changer de répertoire de travail,Tu n'as pas à
# WORKDIR /home/{Nom d'utilisateur approprié}
#Exigences créées à l'avance et dans le même dossier que le Dockerfile.Installez txt
COPY requirements.txt ${PWD}
RUN pip3 install -r requirements.txt
#Installez le SDK Cloud
# 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
#Nœud à utiliser de manière intrigue.installer 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
#Prise en charge parcellaire avec 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=
Écrivez les modules à installer cette fois dans requirements.txt
.
La version fixe est votre choix
requirements.txt
numpy
pandas
matplotlib
seaborn
scikit-learn
scrapy
jupyter
plotly
google-cloud-bigquery
jupyterlab
Placez les deux fichiers ci-dessus dans un dossier approprié et déplacez-vous vers ce répertoire. Après cela, vous pouvez exécuter les commandes suivantes dans l'ordre
#Créer une image Docker
docker build --rm -t {Nom de l'image Docker} .
#Créer un conteneur Docker
#Redirection de port pour se connecter à l'intérieur et à l'extérieur de Docker(-p)Faire
#Montez un dossier en dehors de Docker afin que les fichiers ne disparaissent pas même si vous supprimez le conteneur Docker(-v)Faire
docker run -itp {Port à l'extérieur du conteneur}:{Port dans le conteneur} -v {Chemin absolu du dossier en dehors du conteneur,À la fin"/"N'attachez pas}:{Chemin absolu de l'endroit où vous souhaitez monter le dossier dans le conteneur+Le nom du dossier à monter dans Docker} --name {Le nom du conteneur} {Nom de l'image à partir de laquelle il a été créé} /bin/bash
#Démarrez Jupyter
jupyter lab --ip=0.0.0.0 --allow-root --port {Port dans le conteneur}
#certification SDK cloud
gcloud init
# google-cloud-Authentification API pour bigquery
hogehoge
export GOOGLE_APPLICATION_CREDENTIALS={Chemin absolu du fichier d'authentification}
export GOOGLE_CLOUD_PROJECT={Nom du projet à connecter}
Recommended Posts