linux(ubuntu)でdockerコンテナをpullしてjupyterを起動するまでのメモ
設定によって微妙に変わる。dockerコマンドにsudoをつけているがrootで実行する場合は必要なし。たぶんlinux以外の環境でもほぼ同じコマンドで使用できるとおもう。
基本的には以下を参考にさせてもらう。ほぼコピペ。
https://qiita.com/y4m3/items/c2703d4e131e05084b7b
https://qiita.com/Brutus/items/a08c210b87ccb39379c2
基本的な流れ
-
- コンテナをpullしてくる。
-
- コンテナを起動してコンテナ内のbash環境に入る。
-
- コンテナ内のjupyter認証用ハッシュを生成。
-
- 一旦コンテナから出る。
-
- 生成したハッシュを使用してコンテナ&jupyter起動。
-
- ブラウザ等でlocalhostに入る。
- ハッシュを入力。jupyterのトップ画面に入れたら成功。
コマンド
1.コンテナをpullしてくる。
sudo docker pull jupyter/datascience-notebook
datascience-notebookは数GBあるのでしばし待つ。
2.コンテナを起動してコンテナ内のbash環境に入る。
sudo docker run -it --rm jupyter/datascience-notebook /bin/bash
-itオプションでコンテナに入る。 -rmオプションをつけるとコンテナから出たときにコンテナが削除される。イメージは残る。
3.コンテナ内のjupyter認証用ハッシュを生成。
python3 -c 'from notebook.auth import passwd;print(passwd())'
と打つと
Enter password:
Verify password:
と出るのでパスワードを入力する。
ハッシュが表示されるのでどこかにコピペして保存する。
4.一旦コンテナから出る。
Ctrl+Dなどでコンテナから出る。
5.生成したハッシュを使用してコンテナ&jupyter起動。
コンテナ内でrootが必要な場合は-u rootを付ける。rootの必要がなければ-u rootは外す。
sudo docker run -d --name notebook -p 8888:8888 -u root jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:生成したハッシュパスワード'
6.ブラウザ等でlocalhostに入る。
http://localhost:8888
7.ハッシュを入力。jupyterのトップ画面に入れたら成功。
dockerの終了は
sudo docker stop コンテナID
docker終了後、再度コンテナを開くとき
sudo docker start コンテナID
のあと、いつもどおりlocalhost:8888へアクセスすればOK。
メモ
jupyterのportは通常は8888となっていると思われるがローカル環境でjupyterを起動するなど8888のportが使用済みだったりするとdockerのjupyterを起動できない。
portを設定しないでjupyterを起動する場合、自動で使用していないportを使ったりしてくれるけどfirewallでそのportが開放されてないなどの状況もあるので、
portの使用状況は確認してから使う。
以上。