GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come costruire il contenitore Docker Anaconda Python Data Science

In questo articolo creeremo un contenitore Docker per l'ambiente di sviluppo di Machine Learning (ML). Questa immagine è molto utile se stai sviluppando modelli ML o hai bisogno di un notebook Jupyter preconfigurato con alcune delle librerie più utili.

Di recente abbiamo pubblicato un articolo Introduzione rapida e semplice ai grafici Helm di Kubernetes in 10 minuti, in cui puoi trovare istruzioni su come utilizzare Helm per distribuire questo container nel tuo cluster Kubernetes.

Aggiornamento per il 2020

  • Aggiornato a Python 3.6.
  • Risolti molti problemi di build.

L'ultima volta che abbiamo creato il container Docker con Jupiter, Keras, Tensorflow, Pandas, Sklearn e Matplotlib. Improvvisamente, ho capito che mi mancava OpenCV per le manipolazioni di immagini e video Docker. Bene, ho passato l'intera giornata a preparare la nuova build dell'immagine. E in questo articolo ti mostrerò come farlo molto più velocemente utilizzando l'immagine Docker ufficiale di Anaconda.

Ci sono due modi per farlo.

Modo semplice

Questo processo richiede circa 7 minuti per creare il contenitore di 3,11 Gb di dimensione.

Via Anaconda

Quando ho iniziato a giocare con ML nel 2018, Anaconda era un modo super veloce e semplice per creare un container Docker per esperimenti ML. È stato molto più veloce, quindi, compilare OpenCV 3 per Ubuntu 16.04. Oggi è viceversa.

Sto utilizzando le stesse fonti, ma sto cambiando Dockerfile .

Ecco come appare:

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

Come puoi vedere, stiamo installando solo libgtk2.0 per il supporto OpenCV e tutti gli altri componenti come Terraform, Pandas, Scikit-learn, Matplotlib, Keras e altri utilizzando il gestore di pacchetti conda.

Contenitore in esecuzione

Ora hai un container funzionante ed è ora di avviarlo. Crea una cartella all'interno della cartella del tuo progetto dove memorizzeremo tutti i nostri Jupyter Noteboo con il codice sorgente dei nostri progetti:

mkdir notebooks

E avvia il contenitore con il seguente comando:

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

Avvierà il container ed esporrà Jupyter sulla porta 8888 e Tensorflow Dashboard sulla porta 6006 sul tuo computer locale o sul tuo server a seconda di dove hai eseguito questo comando.

Se non desideri creare e mantenere il tuo contenitore, sentiti libero di utilizzare il mio contenitore personale:

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

Installazione di pacchetti aggiuntivi

Non appena hai avviato Jupyter, alcuni pacchetti potrebbero mancare per te ed è OK. Sentiti libero di eseguire il seguente comando in una cella del tuo notebook Jupyter:

!pip install requests

O per conda:

!conda install scipy

Spero che questo articolo ti sia stato utile. Se è così, metti mi piace o ripubblicalo. A presto!

Riepilogo

L'utilizzo di Anaconda come immagine di base rende pesante l'immagine Docker. Intendo DAVVERO pesante.

Ad esempio:

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'installazione di tutti i componenti all'interno dell'immagine del contenitore Ubuntu 20.04 LTS, incluso OpenCV 3, richiede circa 7 minuti e l'immagine finale è di circa 3,11 Gb.

Allo stesso tempo, il processo di creazione del contenitore Anaconda3 richiede x2 volte più tempo e ti dà un'immagine x2 volte più grande (~6,36 Gb). Il processo di costruzione è molto più complicato rispetto al 2018 e mi ci è voluto un po' per aggiornare la configurazione a uno stato funzionante.

Ci auguriamo che tu abbia trovato utile questo articolo. Se è così, per favore, aiutaci a diffonderlo nel mondo!


Docker
  1. Come installare WordPress utilizzando Docker

  2. Come eseguire un programma all'interno di un contenitore Docker?

  3. Come assegnare un IP statico a un contenitore Docker

  4. Come condividere i dati tra contenitori Docker

  5. Come elencare i contenitori Docker

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come creare un'immagine di Windows Docker con il tag di build Docker

Come configurare un container Docker Apache

Come eseguire i contenitori Docker

Come installare Anaconda su Linux per la scienza dei dati vince!