yanom blog

様々な技術について書きます

jupyter notebookを使ったマニュアル作成

データサイエンスの世界では数年前から当たり前のように使われているjupyter notebookですが、 その表現力の高さからハンズオンだったりマニュアル作成などの手順書としても用いられているようです。
この記事では、その方法について記載します。

tl;dr

  • jupyter notebookを使うことで、実行可能な環境と手順とその結果を1つにまとめることが出来ます。
  • ハンズオンなどで複数人に手を動かしてもらう時に便利です。
  • docker imageとして作成しておくと更に便利です。

jupyter notebookとは

  • Project Jupyterの名の下に、ライブコード、方程式、視覚化、テキストを含むドキュメントを作成、共有できるオープンソースのWebアプリケーションです。
  • Project Jupyter

さっそく試してみましょう

公式からdocker imageが提供されているので、簡単に試すことが出来ます。

以下のようなコマンドでimageをpullしてきます。

  $ docker pull jupyter/datascience-notebook

その後、runでコンテナをイメージから起動します。 ここでは、ポートを8888に設定します。

  $ docker run -p 8888:8888 jupyter/datascience-notebook

起動が成功すると以下のようなログが出力されるので、 表示に従ってブラウザでアクセスします。

[I 01:12:38.917 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[W 01:12:39.823 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 01:12:40.031 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
[I 01:12:40.031 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 01:12:40.044 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 01:12:40.044 NotebookApp] The Jupyter Notebook is running at:
[I 01:12:40.044 NotebookApp] http://(3dcac13d5721 or 127.0.0.1):8888/?token=f7ab1d80e32710cdbbd0253a7a38c080ab5dba51c337be2e
[I 01:12:40.044 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 01:12:40.044 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://(3dcac13d5721 or 127.0.0.1):8888/?token=f7ab1d80e32710cdbbd0253a7a38c080ab5dba51c337be2e

ログイン後の画面はこんな感じです。

f:id:yanom20:20180808200549p:plain
login画面

bashのインストール

ここでは、bashをjupyter notebook上で使用できるようにしたいと思います。 同じような感じで他の言語もjupyter notebook上で扱えるようにできるようです。

ログイン画面からNew > terminalを開きます。 terminal上で以下のコマンドを実行

  $ pip install bash_kernel
  $ python -m bash_kernel.install

その後コンテナを再起動します。(再起動は必要ないかも)

  $ docker restart <CONTAINER ID>

再度ログインしてみると・・・
NewでBashが選択できるようになっていると思います!

f:id:yanom20:20180808200839p:plain
bashが追加された

こうすることで例えば・・・

f:id:yanom20:20180808200936p:plain
使用例

みたいな形でテキストの手順と実行したコマンド、そしてその結果を1つにまとめることができます。
もちろん、作成した手順はnotebookという形で保存しておくことが出来ますし、複数作成することもできます。

まとめ

  • docker上でjupyter notebookを動かし、bashのインストールを行いました。
  • 今回のようにdocker 上で環境を準備しておくことで簡単に配布出来ますし、万が一環境を壊しても簡単に作り直すことができます。
  • また、bashやコマンドの実行に必要なパッケージをインストールしたイメージを準備しておくことで、ハンズオンなどですぐに実行できる環境が作れますね。
  • これから流行りそうです。