Ubuntu(WSL2)内に立ち上げたDocker環境のJupyter Notebookへローカル(Windows)からアクセスする方法
Ubuntu(WSL2)内に立ち上げたDocker環境のJupyter Notebookへローカル(Windows)からアクセスするための忘備録です。
接続のイメージは以下。
STEP1 DockerからUbuntu(wsl2)にport forwardする
まずUbuntuから接続できるようにするために、コンテナ内のポートをホストに公開する
docker run -p host-port:vm-port image
vm-port: コンテナ内のポート
host-port: Dockerホストのポート
Jupyter notebookの場合
docker run -p 8888:8888 image
STEP2 ローカル(Windows)からUbuntu(WSL2)のポートにアクセスする
Option1 localhost:8888にアクセスする
驚いたのだが、localhostにアクセスすればそのままWSL2のポートにアクセスできる。
WSL を使用したネットワーク アプリケーションへのアクセス | Microsoft Learn
なので、localhost:8888にアクセスすればWSLの8888にアクセスでき、jupyter notebookが開ける。wsl2ではwslconfigでの設定は不要らしい。
Option2 WSL2にSSH接続し、その際にport fowardingする
最初Option1でできると思っていなかったので、考え付いたのはWSL2にsshにしてその際にport forwardingを設定することだった。
まず以下の記事を参照しWSL2へSSH接続するために公開鍵認証の設定をした。
WSL2のUbuntuにSSH(公開鍵/秘密鍵)で接続する - Qiita
SSH接続の際に、localhost:8888とUbuntu(WSL2)内の8888をリンクさせる。
ssh -L 8888:localhost:8888 -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx
WSL2のIPアドレスは、windowsのコマンドプロンプトから以下のコマンドで調べる。
wsl -e hostname -I
このIPアドレスは固定ではないらしいので、このoptionを使う場合には何か固定する方法が必要かも。
VSCodeでSSH接続を設定しておいて、VSCodeのPortでlocalhostにforwardする設定をやっておくとコマンドを打つ必要がなくてすごい楽。