関連記事
最小限の持ち物で勉強できるのか?iPadで開発 《第1弾》
最小限の持ち物で勉強できるのか?iPadで開発 《第2弾》~SSHで接続~
おさらい
目的
- 机の上には最小限のものだけで勉強する!!
- iPad Pro でどこまで開発の勉強ができるか?
こんな人向け
- iPad ひとつでなんでもやりたい人
- 持ち歩くものを減らしたい人
- PCの買い替えはもう嫌な人
- 新しい勉強の仕方を開拓したい人
環境
- iPad Pro 2018 11inch
- Apple 純正 Smart Keyboard
- モバイルルータ
- さくらのVPS (CentOS7)
更新が遅れていた理由
簡単です。全部うまくいかなかったからです(つω-`)
でもご安心ください。iPad に救世主が現れました。
救世主とは
iPad OS です!!
さらにいうと、、、
Safari が PC版の表示 となったことです。
何がそんなにいいの
何がそんなにいいのと疑問かと思いますが、
今までですと、web ブラウザ経由で使う
Cloud9 や Jupyter Notebook での操作がうまくいかなかったのですがこれが改善されます!
(Smart Keyboard のカーソルの操作が効かないなど苦労しました。。。)
ということで今回は Jupyter Notebook を表示させてみたいと思います。
手順
VPSを立ち上げる
さくらのVPSコントロールパネルに入り「起動」を押す
SSH クライアントを用いてサーバーに入る
現在のおすすめ: Termius
セキュリティを考え鍵認証でのSSH接続にしたときに簡単にできました
Jupyter のイメージを取得する
Docker が入っていることの確認
$ docker --version
Docker version 1.13.1, build b2f74b2/1.13.1
イメージをダウンロード
docker pull jupyter/datascience-notebook
パスワードを作成
ハッシュを作るために仮起動(--rm つけるのでコンテナから出たら勝手に消えます)
$ docker run -it --rm jupyter/datascience-notebook /bin/bash
jovyan@xxxxxxx のようにコンテナ内に入れたら、
コンテナ内の Python3 をお借りしてパスワードのハッシュ作成(今回は test
、お好きなもの安全なものに変えてお使いください)
$ python3 -c 'from notebook.auth import passwd;print(passwd())'
Enter password:
Verify password:
sha1:43dd030f7f29:bfa2d32e343582447c4ddf176911a8417bc64cc0 ←これをあとで用いる
コンテナから抜ける(Control+D でも可)
$ exit
起動!
パスワードには先ほど作成したハッシュを用います
引数の簡単な説明
-d: バックグラウンドで動かすよ
--name: コンテナ名は jupyter という名前だよ
-p: 外部からポート 8888 にアクセスされたらコンテナ内の 8888 に繋いだことになるよ
-u: root ユーザーで使うよ
$ docker run -d --name jupyter -p 8888:8888 -u root jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:43dd030f7f29:bfa2d32e343582447c4ddf176911a8417bc64cc0'
一応動いてることの確認
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f9c6b139eae jupyter/datascience-notebook "tini -g -- start-..." 3 seconds ago Up 2 seconds 0.0.0.0:8888->8888/tcp jupyter
ドキドキのブラウザからアクセス
自分のサーバーの IPアドレス:8888でアクセスすると。。。。
できました(ノ∀\*)
パスワード test
を入れると。。。。
入れました!
Python 使えるかの確認
上記の矢印で示したように「New」から「Python 3」を選ぶと
思った通りの挙動に!!!最高!!
補足) xxx.xxx.xxx.xxx:8888 で入れなかった場合
ポートが解放されてない可能性があります。
まずファイヤーウォールの設定を確認
$ sudo firewall-cmd --list-all
[sudo] password for rgoto:
public (active)
~ 抜粋 ~
ports: 8080/tcp 8888/tcp
ここに 8888/tcp がないと拒否されています。追加しましょう。
(docker run のポートフォワードで好きなポートを選べますので、推測されないものを使う方が安全だと思います。)
$ sudo firewall-cmd --add-port=8888/tcp --permanent
(/tcp 忘れると追加できなくて焦ります)
まとめ
やっとまともに使えるようになったと思います!
iPad の CM で少年が
「What's a computer?」
といったようにドヤれるよう試行錯誤してみます。