GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo construir el contenedor Docker Anaconda Python Data Science

En este artículo, crearemos un contenedor Docker para el entorno de desarrollo de Machine Learning (ML). Esta imagen es bastante útil si está desarrollando modelos ML o si necesita un cuaderno Jupyter preconfigurado con algunas de las bibliotecas más útiles.

Recientemente, publicamos un artículo Introducción rápida y sencilla a los gráficos de Helm de Kubernetes en 10 minutos, donde puede encontrar instrucciones sobre cómo usar Helm para implementar este contenedor en su clúster de Kubernetes.

Actualización para 2020

  • Actualizado a Python 3.6.
  • Se corrigieron muchos problemas de compilación.

La última vez creamos un contenedor Docker con Jupiter, Keras, Tensorflow, Pandas, Sklearn y Matplotlib. De repente, entendí que echaba de menos OpenCV para las manipulaciones de imágenes y videos de Docker. Bueno, pasé todo el día preparando una nueva imagen. Y en este artículo, le mostraré cómo hacerlo mucho más rápido usando la imagen oficial de Docker de Anaconda.

Hay dos formas de hacerlo.

Manera sencilla

Este proceso tarda unos 7 minutos en crear el contenedor de 3,11 Gb de tamaño.

Anaconda way

Cuando comencé a jugar con ML en 2018, Anaconda era una forma súper rápida y fácil de crear contenedores Docker para experimentos de ML. Fue mucho más rápido compilar OpenCV 3 para Ubuntu 16.04. Hoy es al revés.

Estoy usando las mismas fuentes, pero cambiando Dockerfile .

Así es como se ve:

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"]

Como puede ver, estamos instalando solo libgtk2.0 para compatibilidad con OpenCV y todos los demás componentes como Terraform, Pandas, Scikit-learn, Matplotlib, Keras y otros que usan el administrador de paquetes conda.

Contenedor en ejecución

Ahora tiene un contenedor de trabajo y es hora de iniciarlo. Cree una carpeta dentro de la carpeta de su proyecto donde almacenaremos todos nuestros Jupyter Noteboos con el código fuente de nuestros proyectos:

mkdir notebooks

E inicie el contenedor con el siguiente comando:

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

Iniciará el contenedor y expondrá Jupyter en el puerto 8888 y Tensorflow Dashboard en el puerto 6006 en su computadora local o su servidor dependiendo de dónde haya ejecutado este comando.

Si no desea crear y mantener su propio contenedor, no dude en utilizar mi contenedor personal:

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

Instalación de paquetes adicionales

Tan pronto como haya lanzado Jupyter, es posible que le falten algunos paquetes y está bien. Siéntase libre de ejecutar el siguiente comando en una celda de su cuaderno Jupyter:

!pip install requests

O para conda:

!conda install scipy

Espero que este artículo te haya resultado útil. Si es así, dale me gusta o vuelve a publicarlo. ¡Hasta pronto!

Resumen

El uso de Anaconda como imagen base hace que la imagen de Docker sea más pesada. Quiero decir REALMENTE pesado.

Por ejemplo:

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

La instalación de todos los componentes dentro de la imagen del contenedor de Ubuntu 20.04 LTS, incluido OpenCV 3, toma ~7 minutos y la imagen final ~3.11 Gb.

Al mismo tiempo, el proceso de creación del contenedor Anaconda3 lleva el doble de tiempo y le brinda una imagen el doble de grande (~6,36 Gb). El proceso de construcción es mucho más complicado, entonces fue en 2018, y me tomó un tiempo actualizar la configuración a un estado de trabajo.

Esperamos que este artículo le haya resultado útil. Si es así, ¡ayúdanos a difundirlo por todo el mundo!


Docker
  1. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  2. Cómo usar un Dockerfile para crear una imagen de Docker

  3. Cómo usar SSH en un contenedor Docker

  4. Cómo asignar una IP estática a un contenedor Docker

  5. Cómo compartir datos entre contenedores Docker

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo crear una imagen de ventana de Docker con la etiqueta de compilación de Docker

Cómo configurar un contenedor Apache Docker

Cómo ejecutar contenedores Docker

¡Cómo instalar Anaconda en Linux para la ciencia de datos gana!