Jupyterを3つの環境(ホストOS、WSL、Vagrant)で同時に起動する。
はじめに
ホストOS(Windows)、WSL、VagrantにそれぞれJupyterをインストールしていて、それらを同時に起動して作業したい時に、上手く起動できない問題の解決策を紹介。結論としては、デフォルトのままだと、全てがローカルポート8888を使おうとしてエラーが生じるので、ローカルポートをうまく割り当てると解決する。
まずWSLで起動
C:\Users\*WinUSERNAME>bash (base) *LinuxUSERNAME@DESKTOP-XXXXXXX:/mnt/c/Users/*WinUSERNAME$ (base) *LinuxUSERNAME@DESKTOP-XXXXXXX:/mnt/c/Users/*WinUSERNAME$ cd ~ (base) *LinuxUSERNAME@DESKTOP-XXXXXXX:~$ jupyter lab
jupyter lab入力後に表示されるURLをブラウザに張り付けると、WSL上のJupyterが起動する。
※この時のローカルポートは8888である。
次にVagrantで起動
C:\Users\*WinUSERNAME\*vagrantのフォルダ>vagrant up C:\Users\*WinUSERNAME\*vagrantのフォルダ>vagrant ssh -- -L 8887:localhost:8888 (base) vagrant@ubuntu-bionic:~$ jupyter lab
ポイントは「vagrant ssh -- -L 8887:localhost:8888」とすること。
jupyter lab入力後に表示されるURLは「http://127.0.0.1:8888/?token=*xxxxxxxxxxxxxxxxxxxxxxxx」となってるので、この8888を8887にして(つまりhttp://127.0.0.1:8887/?token=*xxxxxxxxxxxxxxxxxxxxxxxx として)ブラウザに張り付けるとvagrant上のJupyterが起動する。
※この時のローカルポートは8887である。
最後にホストOS(Windows)で起動
Anaconda等からJupyter Labを起動すれば、自動的にローカルポートは8889(つまり8887と8888以外)に設定される。