2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerで作った環境に"localhost"だけでアクセスできるようになって幸せになった話

Last updated at Posted at 2021-05-20

はじめに

私は普段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ライフを!

参考記事

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?