AndroidタブレットでJupyterLabする
はじめに
最近huaweiのmatepad10.4ていうおもちゃタブレットを買ったのでこれでデータ分析勉強する環境つくればベッドで勉強するだろうから最強になれるって思ってやってみた。備忘録的に書いていく。
やりたかったこと
- Android(正確にはHarmonyOS2)でも分析or開発環境作れる?
- Dockerさわってみる
- Azureの無料枠初めてしまったからなにかしたい
- データ分析勉強初めたい
やったこと
- termuxセットアップ
- タブレットのなかでpython動かしたり重いことしたくないのでAzureVM(仮想サーバ)用意
- Docker-composeでJupyter動かす
- sshポートフォワードして仮想的にローカルで動いてる風にする。(セキュアらしい。本番環境用ではないので知らんけど)
- ブラウザからみてみる。
- ついでにcode-server動かしてます。気にしないでね
1,termux
Termux is an Android terminal application and Linux environment.らしい。
以下公式githubから引用。Google playとかにあるアプリ
こいつでsshしたりするよ。
これをいれたらとりあえず
termux-setup-storage
apt update && apt upgrade -y
とかしとこう。
2,AzureVM
今回はAzureVMだったけど別に動かせるマシンあればなんでもいい。ubunntuだとして話は進める。
vmでもvpsでもいいのでsshします。
ssh -i 鍵パス ユーザ@サーバのIPアドレス
3,docker-composeでjupyter動かす
dockerとはよくわからんけどdockerイメージからコンテナつくることで環境がめちゃくちゃ楽にできる技術らしい。どういうやり方が本筋なのかはわからないけど、今回はついでにcode-serverも動かすのでdocker-composeでやる。ホームディレクトリにworkディレクトリとdocker-compose.ymlってファイルをつくる。
mkdir work
vim docker-compose.yml
version: "3"
services:
notebook:
image: jupyter/datascience-notebook
ports:
- "8888:8888"
environment:
- JUPYTER_ENABLE_LAB=yes
volumes:
- ./work:/home/jovyan/work
- ./.ssh:/home/jovyan/.ssh
- ./.gitconfig:/home/jovyan/.gitconfig
command: start-notebook.sh --NotebookApp.token=''
code:
image: codercom/code-server
ports:
- "8080:8080"
environment:
PASSWORD: "pass"
volumes:
- ./work:/home/work
- ./.ssh:/home/coder/.ssh
- ./.gitconfig:/home/coder/.gitconfig
今回は以下2つの公式イメージってやつを使った。
jupyter datascience notebook
code-server
docker-compose.ymlの書き方解説は以下が分かりやすい。
そしたら以下でdocker-compose起動する。
docker-compose up -d --build
動いてるかな?てときは
docker ps
すると動いてるプロセスがみれるみたいな感じだった。
4,ssh port forward
ssh -i 鍵パス -L 8888:Localhost:8888 ユーザ@サーバのIPアドレス
この termuxをバックグラウンドで動かしといてブラウザでみてみる。
5,ブラウザからみてみる
http://localhost:8888
できた。
ついでにcode-serverの方は
http://サーバのip:8080
docker-compose.ymlにかいてあるパスワードのpassってうつとできるよ。
たぶんcode-serverはwebサーバ機能があるうやろな
おわり
code-serverのパスワード変えたりとかjupyterのtoken変えたりは調べたらすぐわかると思う。
振り返るとかなり簡単で、調べて試しながら前進していたあの感じは何だったんだろうなあ。
たぶんこれ用意するVMが強ければ分析環境強くなる。そのうちすんごい重い計算とかするときは数時間だけEC2とかのGPUコンピューティングできる借りてやったりするんかな。
Discussion