0
0

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.

Windows10HomeのDocker環境でJupyterNotebookを起動する時のポート指定方法

Last updated at Posted at 2021-02-05

【Windows10Home+Docker】でJupyterNotebookを起動する時の注意

Windows10HomeのDocker環境でJupyterNotebookを起動しようとしてはまってしまったので備忘録を残しておきます。

Windows10HomeにDockerをインストールするときはちょっと手間がかかります。本記事では扱いませんので、下記の記事などを参照ください。

課題

LinuxPCでは下記のサイトを参考に作成したdocker-compose.ymlで起動できたのに、自宅のWindowsHomeでは動かないという事態に直面しました。(localhost:8889にてJupyetrLabが開かない。)

Dockerを使って5分でJupyter環境を構築する

version: "3"
services:
  notebook:
    image: jupyter/datascience-notebook
    container_name: dss_notebook_sample
    ports:
      - "8889:8889"
    environment:
      - JUPYTER_ENABLE_LAB=yes
    volumes:
      - ./work:/home/jovyan/work
    command: start-notebook.sh --NotebookApp.token=''

原因

原因はWindowsHomeにおけるDockerコンテナの扱いになります。WindowsHomeでは下のような階層になっています。

  • Windows10Home => Virtual Box => Linux(仮想マシン) => Dockerコンテナ

そのためymlファイルでポートを指定して開けたとしてもそれは、Linux(仮想マシン)とDockerコンテナ間の話であり、WindowsHomeからは接続できません。

解決策

VirtualBoxのホストOSからゲストOSにアクセスできれば良いのですが、いくつか方法があります。ここでは最も単純な方法である「ポートフォワーディング」を使う手法を紹介します。

    1. VirtualBoxを開き、Dockerに使用されている仮想マシンの設定画面を開く。(下図にて右クリック⇒設定)

image.png

    1. 設定の中から「高度」を開く。

image.png

    1. 「ポートフォワーディング」を選択する

image.png

    1. ホストOSのポートとゲストOSのポートを対応させる。(今回は8889)

image.png

これで完了です。

一度、仮想マシンを再起動した後、docker-compose.ymlが保存されているディレクトリにて、下記のコマンドを実行し、バックグランドでコンテナを起動します。

docker-compose up -d --build

以下のコマンドでコンテナに入ります。

docker exec -it dss_notebook_sample bash

JupyterLabを起動します。

start-notebook.sh --NotebookApp.token=''

http://localhost:8889/ にアクセスするとJupyterLabが開いています。

参考資料

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?