GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment créer un conteneur Anaconda Python Data Science Docker

Dans cet article, nous allons créer un conteneur Docker pour l'environnement de développement Machine Learning (ML). Cette image est très utile si vous développez des modèles ML ou si vous avez besoin d'un bloc-notes Jupyter préconfiguré avec certaines des bibliothèques les plus utiles.

Récemment, nous avons publié un article Introduction rapide et simple aux graphiques Helm de Kubernetes en 10 minutes, dans lequel vous pouvez trouver des instructions sur l'utilisation de Helm pour déployer ce conteneur sur votre cluster Kubernetes.

Mise à jour pour 2020

  • Mise à jour vers Python 3.6
  • Résolution de nombreux problèmes de compilation

La dernière fois, nous avons créé un conteneur Docker avec Jupiter, Keras, Tensorflow, Pandas, Sklearn et Matplotlib. Soudain, j'ai compris que j'avais raté OpenCV pour les manipulations d'images et de vidéos Docker. Eh bien, j'ai passé toute la journée à préparer une nouvelle image. Et dans cet article, je vais vous montrer comment le faire beaucoup plus rapidement en utilisant l'image Docker officielle d'Anaconda.

Il y a deux façons de procéder.

Manière simple

Ce processus prend environ 7 minutes pour créer le conteneur de 3,11 Go.

Chemin d'Anaconda

Lorsque j'ai commencé à jouer avec ML en 2018, Anaconda était un moyen extrêmement rapide et simple de créer un conteneur Docker pour les expériences ML. C'était beaucoup plus rapide, puis de compiler OpenCV 3 pour Ubuntu 16.04. Aujourd'hui, c'est l'inverse.

J'utilise les mêmes sources, mais en changeant Dockerfile .

Voici à quoi ça ressemble :

FROM continuumio/anaconda3
MAINTAINER "Andrei Maksimov"

RUN apt-get update && apt-get install -y libgtk2.0-dev && \
    rm -rf /var/lib/apt/lists/*

RUN /opt/conda/bin/conda update -n base -c defaults conda && \
    /opt/conda/bin/conda install python=3.6 && \
    /opt/conda/bin/conda install anaconda-client && \
    /opt/conda/bin/conda install jupyter -y && \
    /opt/conda/bin/conda install --channel https://conda.anaconda.org/menpo opencv3 -y && \
    /opt/conda/bin/conda install numpy pandas scikit-learn matplotlib seaborn pyyaml h5py keras -y && \
    /opt/conda/bin/conda upgrade dask && \
    pip install tensorflow imutils

RUN ["mkdir", "notebooks"]
COPY conf/.jupyter /root/.jupyter
COPY run_jupyter.sh /

# Jupyter and Tensorboard ports
EXPOSE 8888 6006

# Store notebooks in this mounted directory
VOLUME /notebooks

CMD ["/run_jupyter.sh"]

Comme vous pouvez le voir, nous installons uniquement libgtk2.0 pour le support OpenCV et tous les autres composants comme Terraform, Pandas, Scikit-learn, Matplotlib, Keras et autres en utilisant le gestionnaire de paquets conda.

Conteneur en cours d'exécution

Vous avez maintenant un conteneur de travail et il est temps de le démarrer. Créez un dossier dans le dossier de votre projet où nous stockerons tous nos Jupyter Noteboos avec le code source de nos projets :

mkdir notebooks

Et démarrez le conteneur avec la commande suivante :

docker run -it -p 8888:8888 -p 6006:6006 \
    -d -v $(pwd)/notebooks:/notebooks \
    python_data_science_container:anaconda

Il démarrera le conteneur et exposera Jupyter sur le port 8888 et tableau de bord Tensorflow sur le port 6006 sur votre ordinateur local ou votre serveur selon l'endroit où vous exécutez cette commande.

Si vous ne souhaitez pas créer et gérer votre propre conteneur, n'hésitez pas à utiliser mon conteneur personnel :

docker run -it -p 8888:8888 -p 6006:6006 -d -v \
    $(pwd)/notebooks:/notebooks amaksimov/python_data_science:anaconda

Installer des packages supplémentaires

Dès que vous avez lancé Jupyter, certains packages peuvent vous manquer et c'est normal. N'hésitez pas à lancer la commande suivante dans une cellule de votre notebook Jupyter :

!pip install requests

Ou pour conda :

!conda install scipy

J'espère que cet article vous a été utile. Si c'est le cas, n'hésitez pas à l'aimer ou à le republier. A bientôt !

Résumé

L'utilisation d'Anaconda comme image de base alourdit votre image Docker. Je veux dire VRAIMENT lourd.

Par exemple :

docker images

REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
amaksimov/python_data_science       anaconda            7021f28dfba1        29 minutes ago      6.36GB
amaksimov/python_data_science       latest              3330c8eaec1c        2 hours ago         3.11GB

L'installation de tous les composants à l'intérieur de l'image de conteneur Ubuntu 20.04 LTS, y compris OpenCV 3, prend environ 7 minutes et l'image finale d'environ 3,11 Go.

Dans le même temps, le processus de création de conteneur Anaconda3 prend x2 fois plus de temps et vous donne une image x2 fois plus grande (~ 6,36 Go). Le processus de construction est beaucoup plus compliqué, alors c'était en 2018, et il m'a fallu un certain temps pour mettre à jour la configuration à un état de fonctionnement.

Nous espérons que vous avez trouvé cet article utile. Si oui, s'il vous plaît, aidez-nous à le diffuser dans le monde !


Docker
  1. Comment installer WordPress avec Docker

  2. Comment exécuter MySQL dans un conteneur Docker

  3. Comment attribuer une adresse IP statique à un conteneur Docker

  4. Comment partager des données entre des conteneurs Docker

  5. Comment répertorier les conteneurs Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment créer une image Windows Docker avec la balise Docker Build

Comment configurer un conteneur Apache Docker

Comment exécuter des conteneurs Docker

Comment installer Anaconda sur Linux pour la science des données gagne !