Dockerでデータ分析環境を構築する方法をまとめてみました。
UbuntuをベースにMinicondaを導入し、さらにRDKitやPymatgen、XenonPyといったケモインフォマティクス、マテリアルズインフォマティクス関連のライブラリ、およびRその他をインストールするものです。UIはJupyterLab、日本語表記にも対応しています。
Dockerfile
こちらがDockerfileの中身です。
それぞれのコマンドの意味は以下の通りです。
1. Ubuntuをインストール
最初の一行目のところです。最新のUbuntuをインストールします。
2. プロキシ設定
# proxyのところに記載しているものです。
会社の中など、プロキシ内でdockerfileをビルドする場合は、この2行を入れておきます。プロキシを通過させるための設定です。
ここでは、ユーザー名(ID):doraemon、パスワード:1a2b3c、プロキシアドレス:111.111.111.111、ポート:8080、としています。各自のプロキシ情報に置き換えていただければと思います。
プロキシ情報の確認方法については、こちらの記事を参考にしてください。
https://punhundon-lifeshift.com/python_proxy
3. 必要なLinuxコマンドをインストール
# install linux commandsのところに記載しているものです。
パッケージの操作・管理を行うコマンドであるapt-getをアップデートした上で、sudoやwgetなど、必要なLinuxコマンドをインストールします。
4. Ubuntuで日本語が使えるように設定
# add Japanese packages to ubuntuのところに記載しているものです。
日本語のパッケージをインストールします。これをしないと、JupyterLabのファイル一覧で、日本語が文字化けしてしまいます。
5. Minicondaをインストール
# install miniconda3-py3.6のところに記載しているものです。
まずはWORKDIRで、optディレクトリを指定します。ここに、Minicondaや各種ライブラリをインストールしていきます。
ここではMinicondaをインストールします。豊富なライブラリを包含したAnacondaでもよいのですが、通常のデータ分析で使わないものもインストールされますし容量も大きくなるため、今回は軽量のMinicondaを選択しています。
また、後ほどインストールするライブラリの中には、Python3.7以上に対応していないものがあるため、ここではPython3.6でかつ最も新しいバージョンのMiniconda (Miniconda3-4.5.5-Linux-x86_64.sh) を指定しています。
6. パスを通す
# set pathのところに記載しているものです。
Minicondaにパスを通します。
7. 各種ライブラリをインストール
# install librariesのところに記載しているものです。
pip, condaをアップグレードしたのち、必要なライブラリをインストールします。ここの書き方によってはpythonが勝手に3.7以上にアップグレードされる場合があるため要注意です。上記のDockerfileの通りであれば問題なくインストールできます。
インストールするライブラリはdockerfileを見ていただければ分かると思います。RDKit、Pymatgen、XenonPyといった化学系ライブラリから勾配ブースティング、変数選択、R関連、JupyterLabまで一通り入れています。もし他に追加したいものがあれば、installのコマンドを追記します。
なお、numpyやpandas、matplotlib、seaborn、scikit-learnといった基本ライブラリは、上記の過程で同時にインストールされますので、敢えてconda install numpyなどと打つ必要はありません。
また、JupyterLabの拡張機能を使えるようにするため、Node.jsを入れてJavaScriptを動かせるようにします。
8. matplotlibの日本語対応化
# enable Japanese on matplotlibのところに記載しているものです。
matplotlibのグラフで日本語が文字化けしないようにするためのコマンドです。
9. ‘work’フォルダの作成
# make ‘work’ directoryのところに記載しているものです。
先程まではWORKDIRでoptディレクトリを指定していましたが、一旦rootに戻し、root直下にworkフォルダを作成します。ここが、実際の分析ファイル(.ipynb)等が格納されるディレクトリとなります。
10. docker runするとJupyterLabが起動するように設定
# execute jupyterlab as as default commandのところに記載しているものです。
Dockerfileをビルドしたあと、docker runすると自動的にJupyterLabが起動するように設定するものです。
参考にしたURL
Ubuntuベースにconda環境を導入する書き方はこちらのブログを参考にしました。
Docker超入門講座 | 米国データサイエンティストのブログ
ちなみに、このブログを運営されているカメさんのこちらのUdemy講座、超おすすめです。