0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jupyter notebookをリモートのDocker(Ubuntu)をサーバーにしてローカルのブラウザで見る方法

Last updated at Posted at 2019-06-26

##要約
Jupyter notebookは便利です。Anacondaからインストールすると、ローカルのコンピュータをサーバーとして自作自演クライアントになる設定になっています。リモートをサーバーとしてupyter notebookを走らせることはできますが、セキュリティ面で心配です。そこで、sshで暗号化してhttpsでつながるようにすることにしました。jupyter notebookのコンフィギュレーションにちょっと鍵情報をたして、dockerにjupyter notebookを走らせるよう記述し新たなdockerをビルドします。
###注意点
実際にはここに書いてある以外にクライアントのブラウザでhttpsを受けるために証明書が必要です。ここには書いてないです。
このバージョンは完全な記述ではないです。
##手順
###joupyter notebookのconfigurationに鍵情報を書き込む。
jupyter notobookを常駐させたいdockerをリモートで走らせ、たうえで、

In [2]: from IPython.lib import passwd
In [3]: passwd()
Enter password:

となるので、自分で決めたパスワードを入力する。

Verify password:

で同じのを入力する。すると、

Out[3]: 'sha1:*****

とshaのカギができるので、これを

editor ~/.jupyter/jupyter_notebook_config.py

とかやって、jupyter_notebook_config.pyを開き、編集する。上記ののカギを

c.NotebookApp.password = u’sha1***'

というようにeditする。jupyter_notebook_config.pyではコメントアウトしてあるはずなので、コメントアウトを解除しておく。

###jupyterを起動するためのシェルスクリプト
jupyterを起動するためのシェルスクリプトも書いておきます。

jupyter_run.sh
#!/bin/bash
jupyter notebook --port=9999 --ip=0.0.0.0 --allow-root --no-browser &
echo "Access from a local browser using URL: "
echo "https://123.45.67.890:9999/"

###dockerをコミットする。
このように設定したdockerを

docker commit e839bcb92clc6d user/mydocker:latest

として、コミットします。

Dockerfileとしては、

FROM user/mydocker:latest
MAINTAINER rk
RUN pip install scikit-learn
RUN mkdir /workspace/bin
ENV PATH $PATH:/worksapce/bin
RUN echo $PATH
ADD jupyter_run.sh /workspace/bin
CMD /bin/bash  /workspace/bin/jupyter_run.sh

というようにしておく。これを使ってdockerをビルドすればとりあえず完成です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?