Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

最小限の持ち物で勉強できるのか?iPadで開発 《第3弾》~救世主現る~

More than 1 year has passed since last update.

おさらい

目的

  • 机の上には最小限のものだけで勉強する!!
  • iPad Pro でどこまで開発の勉強ができるか?

こんな人向け

  • iPad ひとつでなんでもやりたい人
  • 持ち歩くものを減らしたい人
  • PCの買い替えはもう嫌な人
  • 新しい勉強の仕方を開拓したい人

環境

  • iPad Pro 2018 11inch
  • Apple 純正 Smart Keyboard
  • モバイルルータ
  • さくらのVPS (CentOS7)

更新が遅れていた理由

簡単です。全部うまくいかなかったからです(つω-`)
でもご安心ください。iPad に救世主が現れました。

救世主とは

iPad OS です!!
さらにいうと、、、
Safari が PC版の表示 となったことです。

何がそんなにいいの

何がそんなにいいのと疑問かと思いますが、
今までですと、web ブラウザ経由で使う
Cloud9Jupyter 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でアクセスすると。。。。
できました(ノ∀\*)
A5773342-7B6E-4345-A88F-671C73545C05.jpeg
パスワード test を入れると。。。。
入れました!
2DBEB3DB-6BF2-4861-8301-C8267EBC49AE.jpeg

Python 使えるかの確認
上記の矢印で示したように「New」から「Python 3」を選ぶと
C33B7395-523F-4359-AC86-742EF21EF398.jpeg

思った通りの挙動に!!!最高!!

補足) 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?」
といったようにドヤれるよう試行錯誤してみます。

参考

DockerでJupyter Notebookを使う
さくらのVPSでCentOS7のポートを開放する

ryotafull
趣味でコードを少し書いていましたが、仕事になりました。よく営業にいそうと言われるお話系エンジニア。 ごりごり要件を掘り起こして下からツンツンすることが得意。 重いバッグを持ち歩きたくない。
https://twitter.com/ryota_full
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away