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

Comment exécuter Jupiter, Keras, Tensorflow et d'autres bibliothèques ML dans Docker

Cet article continuera la série d'articles liés à Docker et montrera comment créer un conteneur Docker basé sur Ubuntu 20.04 LTS pour Machine Learning. Nous allons installer dans l'environnement :Python 3, Jupyter, Keras, Tensorflow, TensorBoard, Pandas, Sklearn, Matplotlib, Seaborn, pyyaml, h5py. Préparez votre environnement ML personnel en 3 minutes, hors temps de création d'image Docker !

Mise à jour 2020

J'ai mis à jour le conteneur vers la base Ubuntu 20.04 LTS et accéléré le processus de construction de Docker. Maintenant, nous ne construisons pas OpenCV à partir de la source, mais l'installons à partir de apt .

La configuration de l'environnement est une question courante lorsque vous commencez à apprendre Machine Learning (ML). Dans cet article, je vais vous montrer comment créer votre propre conteneur Docker, y compris les frameworks suivants pour un démarrage confortable :

  • Python 3
  • Jupyter
  • Kéras
  • Tensorflow
  • TensorBoard
  • Pandas
  • Sklearn
  • Matplotlib
  • Seaborn
  • pyyaml
  • h5py

Ce sont les 10 meilleurs frameworks Python largement utilisés pour la science des données, et vous trouverez la plupart d'entre eux dans n'importe quel article pratique sur Internet. Dans le prochain article (Comment créer un conteneur Python Data Science Docker basé sur Anaconda), je montrerai comment créer la même image au-dessus de la distribution Anaconda.

Exigences

Tout ce dont vous avez besoin est Docker et l'éditeur de texte installés sur votre système.

Structure du projet

Voici la structure finale du projet :

$ tree -a python_data_science_container

$ python_data_science_container
├── Dockerfile
├── conf
│   └── .jupyter
│       └── jupyter_notebook_config.py
└── run_jupyter.sh

2 directories, 3 files

Fichier Docker

Tout ce que vous avez à faire est de créer un dossier de projet et un nom de fichier Dockerfile à l'intérieur :

$ mkdir python_data_science_container

$ cd python_data_science_container

$ vim Dockerfile

Après cela, placez le contenu suivant dans le Dockerfile :

FROM ubuntu:20.04
MAINTAINER "Andrei Maksimov"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
	libopencv-dev \
        python3-pip \
	python3-opencv && \
    rm -rf /var/lib/apt/lists/*

RUN pip3 install tensorflow && \
    pip3 install numpy \
        pandas \
        sklearn \
        matplotlib \
        seaborn \
        jupyter \
        pyyaml \
        h5py && \
    pip3 install keras --no-deps && \
    pip3 install opencv-python && \
    pip3 install 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"]

Vous pouvez toujours trouver des exemples à jour de mon propre Dockerfile sur GitHub, que j'utilise pour créer mon environnement de conteneur personnel Data Science (il est également disponible gratuitement sur Docker Hub).

Configuration Jupyter

Dès que nous avons déclaré notre conteneur et ses composants, il est temps de préparer une configuration pour Jupyter. Créez un fichier jupyter_notebook_config.py avec le contenu suivant :

# get the config object
c = get_config()
# in-line figure when using Matplotlib
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.allow_remote_access = True
# do not open a browser window by default when using notebooks
c.NotebookApp.open_browser = False
# No token. Always use jupyter over ssh tunnel
c.NotebookApp.token = ''
c.NotebookApp.notebook_dir = '/notebooks'
# Allow to run Jupyter from root user inside Docker container
c.NotebookApp.allow_root = True

Comme vous pouvez le deviner à partir de Dockerfile , nous le mettrons dans /root/.jupyter/ dossier pendant le processus de construction du conteneur.

Création d'un script de démarrage

La dernière chose que nous devons faire est de créer un script run_jupyter.sh , qui lancera le serveur Jupiter à l'intérieur de notre conteneur lors de son processus de démarrage. Créez un avec le contenu suivant :

#!/usr/bin/env bash

jupyter notebook "$@"

Et rendez ce fichier exécutable :

$ chmod +x run_jupyter.sh

Ce fichier sera lancé à l'intérieur de votre conteneur par défaut chaque fois que vous démarrerez le nouveau.

Création d'une image de conteneur

La dernière étape - la création du conteneur. Exécutez simplement la commande suivante pour créer votre conteneur Docker à partir du répertoire du projet :

$ docker build -f Dockerfile -t python_data_science_container .

Docker installera toutes les bibliothèques et frameworks nécessaires à l'intérieur de votre image de conteneur pendant le processus de construction et le rendra disponible pour utilisation.

Conteneur en cours d'exécution

Vous avez maintenant un conteneur fonctionnel et il est temps de le démarrer. Créez un dossier dans le dossier de votre projet où nous stockerons tous nos Jupyter Notebooks 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

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

Veuillez noter que ce conteneur a été créé uniquement à des fins de développement local. Je suppression de l'authentification sur Jupyter dans ce conteneur, afin que tout le monde puisse se connecter au port 8888 ou 6006 et exécuter le code de cause Python.

Si vous recherchez simplement une solution de travail

Si vous ne souhaitez pas créer et maintenir votre propre conteneur et que les composants susmentionnés vous suffiront, n'hésitez pas à utiliser mon conteneur personnel, que je mets à jour régulièrement :

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

J'espère que cet article vous sera utile. Si vous aimez l'article, veuillez le republier en utilisant les médias sociaux de votre choix. A bientôt !


Docker
  1. Comment exporter et importer des conteneurs Docker

  2. Comment installer et configurer Docker Container sur Rocky Linux 8

  3. Comment exécuter un programme dans un conteneur Docker ?

  4. Comment exécuter MySQL dans un conteneur Docker

  5. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

Comment installer et utiliser Docker sur Ubuntu 22.04

Comment exécuter une application .NET dans Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment nettoyer et supprimer des images Docker

Comment exécuter Grafana dans un conteneur Docker

Comment exécuter des conteneurs Docker