Docker+Minicondaによる機械学習用コンテナでJupyterを起動するまで
Minicondaの公式イメージを使用して、機械学習・データサイエンス用のDocker環境を構築します。Dockerのインストールから、コンテナへのpythonパッケージのインストール、Jupyter notebookを開くまでの手順をまとめました。
dockerで機械学習用の環境を構築するメリットは、
- ライブラリ/バージョンの違いがシビアな深層学習フレームワークの環境を手っ取り早く構築できる。
- (Ubuntuの場合) 導入が面倒なTensorflow・LightGBMのGPU版をかんたんに利用できる
- (Windows, Macの場合) Linux系のみ対応のライブラリを使用できる
- Conda環境が壊れてもすぐ復旧できる
などが挙げられます。
Dockerのインストール
各OSへのDockerのインストールはこちらです。
Ubuntu、Windows Pro、Mac
DockerでGPUコンテナを利用できるのはUbuntuのみです。WindowsやMac OSのパソコンしかなくてGPUコンテナを使いたい場合は、外付けSSDからUbuntuを起動するなどの手があります。
Minicondaイメージの取得・コンテナ作成
公式Dockerイメージ(Anaconda 2 or 3、Miniconda 2 or 3)が以下にあります。https://github.com/ContinuumIO/docker-images
Miniconda 3 (python 3.7ベースのMiniconda)イメージは端末から次のコマンドで取得できます。
# dockerコンテナ内と共有するファイルを入れる場所を作っておく mkdir -p docker/miniconda # miniconda3の公式イメージを取得 docker pull continuumio/miniconda3 # minicondaコンテナを起動する docker run --name miniconda3 -it -p 8888:8888 -v /home/[USER名]/docker/miniconda:/home continuumio/miniconda3 /bin/bash
docker run時のオプションの説明--name
:作るコンテナにつける名前-it
:コンテナとホストのコマンドプロンプトをつなぐ-p
:ホストとコンテナのポートをつなぐ:jupyter notebookをブラウザから開けるようになる-v
:ホストのフォルダ(ここでは/home/docker/miniconda)をコンテナ内の/homeと共有する。先に「mkdir -p docker/miniconda
」で作成したフォルダ内にファイル(解析データなど)を入れておくと、コンテナ内と共有できる。
ここでは一応「-v
」オプションで共有フォルダをマウントしています。jupyter notebookだとブラウザを経由してファイルをコンテナ内へアップロード・ダウンロードできるので不要っちゃ不要かもしれません。
Minicondaコンテナ内での作業
先のコマンドでコンテナ内のコマンドプロンプトには入れているので、(必要に応じて仮想環境をつくり)パッケージをインストールします。
# ML用の仮想環境を作成 conda create -n ML # 機械学習・データサイエンス関連のパッケージをインストール conda install numpy scipy pandas matplotlib seaborn bokeh jupyter jupyterlab scikit-learn
コンテナ内のJupyter notebookを起動
# jupyter notebookを開く jupyter notebook --port 8888 --ip=0.0.0.0 --allow-root # jupyter labの場合は以下を実行 jupyter lab --port 8888 --ip=0.0.0.0 --allow-root
出力されるURLをブラウザに入力するとjupyterを開けます。
jupyterを終了するには、「Ctrl+C」
再度コンテナに入るには、「docker exec -it コンテナID /bin/bash
」
作成したMinicondaコンテナをイメージとして保存するには、「docker commit CONTAINER_ID 保存するイメージ名
」
ディスカッション
コメント一覧
まだ、コメントがありません