機械学習を勉強するにあたり、基本的な環境を構築する手順を残します。
必要な環境は以下。
・Windowsマシン
・Docker Toolbox
※後継のDocker For Windowsは仮想環境にVirtualBoxではなくHyper-Vを使う兼ね合いで
問題が多発する様子(WindowsがHOME版だから?)(2018/1時点)
構築する機械学習環境は以下。
・R、RStudio(Server)
・Anaconda(Python, Jupyter notebook, 各種機械学習に必要なPythonライブラリを含む)
【環境構築】
(1)Docker Quickstart Terminalを起動
※初回はDockerを動かすためのベースとなるlinux用ISOをダウンロードするため時間がかかる
※PCが休止状態になった後など、VirtualBoxのネットワーク挙動がおかしくなる場合がある
その際はVirtualBox上の仮想マシン(default)の電源オフ後、Docker Quickstart Terminalを起動し直す
※プロキシ環境課の場合は過去記事「プロキシ環境下でDockerToolbox(Windows)を動かす」を参照
(2)機械学習の環境はUbuntuをベースとするため、以下のコマンドを実行し、最新版をDocker Hubから取得する
docker pull ubuntu:latest
(3)学習環境起動
docker run -it -v /c/Users/Windowsログインユーザ名/適当なフォルダ名:/root/適当なフォルダ名 --name 〇〇 -p 22:22 -p 8888:8888 -p 8787:8787 ubuntu:latest /bin/bash
※〇〇は適当に名前を付ける(コンテナ名、構築後はこの名前でコンテナを起動する)
※-pオプションは22(SSH), 8888(JupyterNotebook), 8787(RStudio)接続用のポート転送設定
※-vオプションはWindowsフォルダと機械学習環境(Linux)のフォルダ共有(共有しないならオプション不要)
(4)パッケージ情報を最新にする
apt-get update
(5)最低限必要になる(であろう)ツール類をインストールしておく
・SSHサーバやvi, wget, sudoコマンド
apt-get isntall -y openssh-server vim wget sudo
・日本語環境
apt-get install -y language-pack-ja-base language-pack-ja ibus-mozc
・日本語環境設定
update-locale LANG=ja_JP.UTF-8
・tar, bunzip2コマンド(Anacondaインストール時に必要)
apt-get install tar libbz2-dev bzip2 apt-transport-https
※libbz2-devはいらなかったかも?
(6)Anacondaインストール
・場所移動
cd /root
・インストーラ取得
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
・インストーラ実行
bash ./Anaconda3-5.0.1-Linux-x86_64.sh
※環境変数 PATH に anaconda の場所を追加(/root/anaconda3)
※tar、bunzip2のコマンドが必要
(7)R, RStudioダウンロードの準備
・パス確認
cat /etc/lsb-release
※DISTRIB_CODENAMEの値を控える
・パスを記述
sudo vi /etc/apt/sources.list
※最終行に「deb https://cran.ism.ac.jp/bin/linux/ubuntu artful/」を記述
※artful/の部分はDISTRIB_CODENAMEの値に変える(今回はxenialだった)
・鍵準備
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
・パッケージ情報更新
sudo apt-get update
(8)R, RStudioインストール
・Rインストール
sudo apt-get install r-base r-base-dev
・ローカルインストール用パッケージインストール
sudo apt-get install gdebi-core
・R Studio(Server)取得
wget https://download2.rstudio.org/rstudio-server-1.1.383-amd64.deb
・R Studioインストール
sudo gdebi rstudio-server-1.1.383-amd64.deb
(インストール時にエラーが発生した場合、以下を実行)
vi /etc/rstudio/rserver.conf
※「server-app-armor-enabled = 0」を追記
・ログイン用ユーザ作成
adduser user
※パスワードはpasswordを設定(別の値でもよい)
(9)Jupyter Notebook設定
・設定ファイル作成
jupyter notebook --generate-config --allow-root
・パスワード設定記述
vi ~/.jupyter/jupyter_notebook_config.py
※「c.NotebookApp.token = ‘password’」を追記
以上で環境構築は終了です。
以下は使い方。
Dockerを以下コマンドで抜けます。
exit
次回以降は以下コマンドで起動します
docker start 〇〇 docker attach 〇〇
※〇〇は構築時に付けたコンテナ名
起動後は以下コマンドでSSHやJupyterNotebookやRStudio(Server)を起動して使用します
・SSH起動
/etc/init.d/ssh start
・JupyterNotebook起動
cd /root jupyter notebook --ip=0.0.0.0 --allow-root &
・RStudio起動
sudo rstudio-server start
SSH接続して機械学習環境を直接操作したい場合
→TeraTerm等で「P:192.168.99.100、ポート:22に接続
JupyterNotebookを使いたい場合は、Windowsマシンのブラウザで以下アクセス
→http://192.168.99.100:8888
※パスワードはpassword
RStudioを使いたい場合は、Windowsマシンのブラウザで以下アクセス
→http://192.168.99.100:8787
※ログイン情報はuser/password
JupyterNotebookのroot許可や不適切なパスワード値を使っていますが、ローカルでの使用を想定しているので問題ないかと思います。
作成したコンテナをDockerHubにアップロードしておくと、自宅や会社など、好きなマシンにすぐインストールできるので便利です。
お疲れ様でした。
One Comment