はじめに
私は普段Python
の機械学習環境をDocker
を利用して構築することが多いです。
普段はlocalhost:〇〇〇〇
というIPアドレスでアクセスをしていますが、ある問題をきっかけにlocalhost
のみでアクセスするようになり、IPを入力する時間を短縮できるようになりました。
今回はlocalhostでアクセスするようになった経緯とやり方について教えます。
環境
- Docker for windows
- JupyterNotebook
- Python
こちらの記事で作成されている環境に似たものを作成したあと、jupyter_notebook_config.py
を追加してトークンの設定を無効化しています。
問題
ある時、他の方が作成した環境でJupyterNotebookにアクセスするときに問題がおきました。
いつものようにコンテナを起動してIPアドレスを入力してもページが応答しないのです。
利用していた環境では、docker-compose up
を行うと、アクセスするIPアドレスが出力されます。
以下のように出力されていました。
notebook_1 | [I 17:48:19.719 NotebookApp] Jupyter Notebook 6.1.5 is running at:
notebook_1 | [I 17:48:19.719 NotebookApp] http://7fc4b7bb8202:8888/
私は、Docker for windowsを利用しているため、localhost:8888
でアクセスすれば普段ならアクセスできるのですが、今回はなぜかできません。
その代わりにReadmeによるとlocalhost/lab
とIPアドレスに入力するとJupyterLab
に接続できるとありました。
どこでそのような設定をしているのか。そしてどのようにすれば設定できるのか。わかりませんでした。
もし、設定できるならとても便利だなと思い調べましたが、すぐに記事にたどり着けませんでした。
解決方法
ポート番号なしhttp://localhost/
でアクセスした場合、
ポート番号がないため、ウェブブラウザは自動的にデフォルトである80番ポート
にアクセスします。
docker-compose.yml
を確認したところ、
ports:
- "80:8888"
となっていました。なるほど!
というわけで、localhost
でアクセスしたい場合は、ports
の左側を80
に設定すれば設定できます。
初めて知りました。
さいごに
この解決方法を見つけられたのはtratail
という質問掲示板に投稿した質問に回答があったおかげでした。
とりあえず、わからないことがあったら質問を投げてみるのも手だと思います。
良きDockerライフを!
参考記事