GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak vytvořit kontejner Anaconda Python Data Science Docker

V tomto článku vytvoříme kontejner Docker pro vývojové prostředí Machine Learning (ML). Tento obrázek je docela užitečný, pokud vyvíjíte modely ML nebo potřebujete předkonfigurovaný notebook Jupyter s některými z nejužitečnějších knihoven.

Nedávno jsme publikovali článek Rychlý a jednoduchý úvod do Kubernetes Helm Charts za 10 minut, kde najdete pokyny, jak pomocí Helm nasadit tento kontejner do vašeho clusteru Kubernetes.

Aktualizace pro rok 2020

  • Upgradováno na Python 3.6.
  • Opraveno mnoho problémů se sestavením.

Naposledy jsme vytvořili kontejner Docker s Jupiter, Keras, Tensorflow, Pandas, Sklearn a Matplotlib. Najednou jsem pochopil, že mi chybí OpenCV pro manipulaci s obrázky a videem v Dockeru. No, strávil jsem celý den přípravou nového image buildu. A v tomto článku vám ukážu, jak to udělat mnohem rychleji pomocí oficiálního Docker Image Anaconda.

Existují dva způsoby, jak to udělat.

Jednoduchý způsob

Tento proces trvá přibližně 7 minut, než se vytvoří kontejner o velikosti 3,11 Gb.

Anaconda way

Když jsem v roce 2018 začal hrát s ML, byla Anaconda super rychlý a nejjednodušší způsob, jak vytvořit kontejner Docker pro experimenty s ML. Kompilace OpenCV 3 pro Ubuntu 16.04 byla mnohem rychlejší. Dnes je to naopak.

Používám stejné zdroje, ale měním Dockerfile .

Tady to vypadá:

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

Jak můžete vidět, instalujeme pouze libgtk2.0 pro podporu OpenCV a všechny ostatní komponenty jako Terraform, Pandas, Scikit-learn, Matplotlib, Keras a další pomocí správce balíčků conda.

Spuštěný kontejner

Nyní máte funkční nádobu a je čas ji spustit. Vytvořte složku ve složce vašeho projektu, kam budeme ukládat všechny naše Jupyter Noteboo se zdrojovým kódem našich projektů:

mkdir notebooks

A spusťte kontejner pomocí následujícího příkazu:

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

Spustí kontejner a zobrazí Jupyter na portu 8888 a Tensorflow Dashboard na portu 6006 na vašem místním počítači nebo serveru v závislosti na tom, kde jste tento příkaz spustili.

Pokud nechcete vytvářet a udržovat svůj vlastní kontejner, neváhejte použít můj osobní kontejner:

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

Instalace dalších balíčků

Jakmile spustíte Jupyter, některé balíčky vám mohou chybět a je to v pořádku. Neváhejte a spusťte následující příkaz v buňce svého notebooku Jupyter:

!pip install requests

Nebo pro conda:

!conda install scipy

Doufám, že tento článek byl pro vás užitečný. Pokud ano, dejte like nebo repost. Uvidíme se brzy!

Přehled

Použití Anacondy jako základního obrazu ztěžuje váš obraz Dockeru. Myslím OPRAVDU těžký.

Například:

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

Instalace všech komponent uvnitř bitové kopie kontejneru Ubuntu 20.04 LTS včetně OpenCV 3 trvá přibližně 7 minut a finální obrázek přibližně 3,11 Gb.

Zároveň proces vytváření kontejneru Anaconda3 trvá x2krát déle a poskytuje vám x2krát větší obraz (~6,36 Gb). Proces budování je mnohem složitější, než tomu bylo v roce 2018 a chvíli mi trvalo, než jsem konfiguraci aktualizoval do funkčního stavu.

Doufáme, že vám tento článek pomohl. Pokud ano, pomozte nám to rozšířit do světa!


Docker
  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak použít Dockerfile k vytvoření Docker Image

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak nainstalovat WordPress pomocí Docker

  2. Jak SSH do kontejneru Docker

  3. Jak nainstalovat Vim do kontejneru Docker

  1. Jak přiřadit statickou IP ke kontejneru Docker

  2. Jak sdílet data mezi kontejnery Docker

  3. Jak vypsat Docker kontejnery