この記事では、機械学習(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年になり、構成を動作状態に更新するのに時間がかかりました。
この記事がお役に立てば幸いです。もしそうなら、私たちがそれを世界に広めるのを手伝ってください!