GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Anaconda Python DataScienceDockerコンテナを構築する方法

この記事では、機械学習(ML)開発環境用のDockerコンテナーを構築します。この画像は、MLモデルを開発している場合や、最も便利なライブラリのいくつかを備えた事前構成済みのJupyterノートブックが必要な場合に非常に役立ちます。

最近、Kubernetes Helmチャートの簡単な紹介記事を10分で公開しました。この記事では、Helmを使用してこのコンテナをKubernetesクラスタにデプロイする方法について説明しています。

2020年の更新

  • Python3.6にアップグレードしました。
  • 多くのビルドの問題を修正しました。

前回、Jupiter、Keras、Tensorflow、Pandas、Sklearn、Matplotlibを使用してDockerコンテナを作成しました。突然、Dockerの画像とビデオの操作にOpenCVを見逃したことがわかりました。さて、私は一日中新しいイメージビルドの準備に費やしました。この記事では、Anacondaの公式DockerImageを使用してはるかに高速に実行する方法を紹介します。

これを行うには2つの方法があります。

簡単な方法

このプロセスには、サイズが3.11Gbのコンテナを作成するのに最大7分かかります。

アナコンダウェイ

2018年にMLで遊び始めたとき、AnacondaはML実験用のDockerコンテナーを作成するための超高速で最も簡単な方法でした。その後、Ubuntu16.04用にOpenCV3をコンパイルする方がはるかに高速でした。今日はその逆です。

同じソースを使用していますが、Dockerfileを変更しています 。

外観は次のとおりです:

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

ご覧のとおり、OpenCVサポート用にlibgtk2.0のみをインストールし、Terraform、Pandas、Scikit-learn、Matplotlib、Kerasなどの他のすべてのコンポーネントをcondaパッケージマネージャーを使用してインストールしています。

実行中のコンテナ

これで、動作するコンテナができました。それを開始します。プロジェクトのフォルダ内にフォルダを作成します。このフォルダには、プロジェクトのソースコードを含むすべてのJupyterNoteboosが保存されます。

mkdir notebooks

そして、次のコマンドでコンテナを起動します:

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

コンテナを起動し、ポート8888でJupyterを公開します およびポート6006のTensorflowダッシュボード このコマンドを実行した場所に応じて、ローカルコンピューターまたはサーバー上で。

独自のコンテナを作成して維持したくない場合は、私の個人用コンテナを自由に使用してください:

docker run -it -p 8888:8888 -p 6006:6006 -d -v \
    $(pwd)/notebooks:/notebooks amaksimov/python_data_science:anaconda
追加パッケージのインストール

Jupyterを起動するとすぐに、一部のパッケージが不足している可能性があり、問題ありません。 Jupyterノートブックのセルで次のコマンドを自由に実行してください。

!pip install requests

またはコンダの場合:

!conda install scipy

この記事がお役に立てば幸いです。もしそうなら、それを好きになるか、再投稿してください。またね!

概要

Anacondaをベースイメージとして使用すると、Dockerイメージが重くなります。本当に重いという意味です。

例:

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

OpenCV3を含むUbuntu20.04LTSコンテナーイメージ内のすべてのコンポーネントのインストールには最大7分かかり、最終イメージは最大3.11Gbです。

同時に、Anaconda3コンテナの作成プロセスには2倍の時間がかかり、2倍の画像(〜6.36 Gb)が得られます。構築プロセスははるかに複雑で、2018年になり、構成を動作状態に更新するのに時間がかかりました。

この記事がお役に立てば幸いです。もしそうなら、私たちがそれを世界に広めるのを手伝ってください!


Docker
  1. Dockerfileを使用してDockerイメージを構築する方法

  2. DockerコンテナでMySQLを実行する方法

  3. DockerコンテナにSSHで接続する方法

  1. Dockerを使用してWordPressをインストールする方法

  2. Dockerコンテナ内でプログラムを実行する方法は?

  3. Dockerコンテナを終了する方法

  1. Dockerコンテナに静的IPを割り当てる方法

  2. Dockerコンテナ間でデータを共有する方法

  3. DockerコンテナにVimをインストールする方法