概要
Jupyterのコマンドを覚えるのはだるいけど、職業上すぐに立ち上げて確認したい!ってことが多々あるので、コマンド表を用意していましたが、コマンドをコピペするのもだるくなってきたので、alias
でシュッと立ち上がるコマンドを用意しようと思いました。
ローカルで使ってね。(公開した環境で使うのはもうちょっと考えてください)
環境
- bashでもzshでも
- Mac OS Catalina
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H15
で、できたのがこれ
$ launch_jupyter
[I 01:47:03.028 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 01:47:03.338 NotebookApp] All authentication is disabled. Anyone who can connect to this server will be able to run code.
jupyter_http_over_ws extension initialized. Listening on /http_over_websocket
[I 01:47:03.408 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 01:47:03.408 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 01:47:03.411 NotebookApp] Serving notebooks from local directory: /app
[I 01:47:03.411 NotebookApp] The Jupyter Notebook is running at:
[I 01:47:03.411 NotebookApp] http://6f0d7f19461f:8888/
[I 01:47:03.411 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 01:47:03.420 NotebookApp] No web browser found: could not locate runnable browser.
pbcopy
と組み合わせているので、クリップボードにはhttp://localhost:xxxx
が乗っていて、ブラウザ開いてURLバーにペーストしたらjupyter画面が表示されるようになっています。
作り方
~/.bashrc
か ~/.zshrc
へ下記コマンドを用意します。
alias launch_jupyter='export DPORT=$(expr $RANDOM % 100 + 10000); echo "http://localhost:${DPORT}" | pbcopy; docker run --rm -v $(pwd):/app -p ${DPORT}:8888 -it hoto17296/anaconda3-ja jupyter notebook --notebook-dir=/app/ --ip=0.0.0.0 --port=8888 --allow-root --NotebookApp.token='''
沖縄のDockerおじさんの @hoto17296 のDocker imageを使わせてもらっています。 hoto17296/anaconda3-ja
また、ホストとフォワードするポート番号は適当にランダムで出すようにしています。たまに使用しているポートにぶつかりますが、もう一度実行すれば大丈夫です(?)
あ、ちなみにDockerを使っているのは、ホストの環境を汚したくないからです。
雑感
aliasの名前はもうちょい短くてもいいかな〜って思っている