図解あり!DockerでJupyterLab環境を構築してみた

プログラミング
この記事は約5分で読めます。
pythonでのプログラミングはDockerで構築したJupyterLab環境で実施しています。ここではDockerでJupyterLab環境を構築する方法を紹介します。

Dockerとは

Dockerとは、Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォームです。

上記記事でWindows 10へのインストール方法を紹介しています。ぜひご覧ください。

JupyterLabとは

JupyterLab(ジュピター・ラボ)とは、ブラウザ上で動作する対話型実行環境です。

2017年2月にv0.16.0がリリースされたのを皮切りに、2019年6月にv1.0.0の正式版がリリースされました。2021/08/25時点ではv3.1.8が最新版となっています。

上記のようにセルと呼ばれる単位ごとに実行でき、その結果をインタラクティブに表示してブラウザから確認できるのが特徴です。

データを可視化しながら見たり、機械学習向けにデータクレンジングすることと相性が良いことから、機械学習エンジニアやデータサイエンティストに人気があります。

Dockerイメージ図

Dockerfileとdocker-compose.ymlのイメージ

Dockerfiledocker-compose.ymlを利用してコンテナを作成するのですが、わかりにくいと思うのでイメージを図にしました。

下記の流れでコンテナを立ち上げます。

  1. Dockerfileに記載された内容にしたがってdocker buildコマンドによって、Docker HubにあるDocker imageをローカルにダウンロードする
  2. docker-compose.ymlに記載された内容にしたがってdocker-compose upコマンドによって、Docker imageからDocker containerを起動する

Docker上のJupyterLabイメージ図

ポート番号を8008:8888で指定したときのイメージ

Docker上にあるJupyterLabのイメージ図です。

このあと示すdocker-compose.ymlで、ポート番号を8008:8888で指定したときはこのようになります。

JupyterLabサーバ自体はポート番号8888番でアクセスを受ける設定になっていますが、コンテナの外からはポート番号8008番でアクセスすることになります。

実施環境

  • Windows 10 バージョン20H2(OSビルド 19042.1165)
  • Docker Desktop 3.6.0(Docker Engine 20.10.8)

実施環境はこちらです。

JupyterLab構築手順

今回は、python 3.9.6のイメージをベースに、JupyterLabをインストールしたイメージをビルドして作り、コンテナを起動することにします。

構成

まず、Dockerfiledocker-compose.ymlは同じディレクトリにいれておきます。

本記事では、WindowsのE:\workの場所に配置しました。

Dockerfile

Dockerfileは上記の内容になります。

下記のことを実施しています。

  • python 3.9.6をベースに
  • pipをアップグレードして、JupyterLabをインストール
  • コンテナのワークディレクトリを/JupyterLabに、リッスンポート番号を8888番に設定
  • コンテナ起動時にjupyter-labコマンドを実行して、下記設定をおこなう
    • IPアドレス接続制限なし
    • ポート番号8888でアクセスを受ける
    • ブラウザを起動しない
    • rootでの実行を許可
    • トークンなしでのアクセスを許可
    • 作業ディレクトリを/JupyterLabに設定

docker-compose.yml

docker-compose.ymlは上記の内容になります。

python396_minimumというイメージからpython396_minimum_containerという名前のコンテナを起動するように指定しています。

ポート番号については、8008番で受けてコンテナ内は8888番に流す、という設定です。

PowerShellでの構築

Dockerfiledocker-compose.ymlを作ったらPowerShellを開いてE:\workに移動します。

docker buildコマンドでDocker HubからDockerfileに記載の内容にしたがってDocker imageを作ります。

イメージのサイズは約1.1GBになります。

イメージが作り終わったらdocker-composeコマンドでコンテナを起動させます。-dオプションでバックグラウンドで起動になります。

Docker Desktop上で見ると、このように見えます。

JupyterLabの確認

コンテナが起動したらブラウザでJupyterLabにアクセスできるようになります。

http://localhost:8008/labにアクセスすると、JupyterLab環境が表示されます!

JupyterLabでHello, world!

それでは、JupyterLabでHello, world!を表示させてみましょう。

Notebookにある「Python 3 (ipykernel)」をクリックします。

セルと呼ばれる場所にprint('Hello, world!')と入力して、Shift+Enterを押すと「Hello, world!」が表示されます!

まとめ

DockerでJupyterLab環境を構築する方法を紹介しました。

Dockerが使えるといろいろな環境・サービスをお試し感覚で使えるので便利です。Docker Hubにさまざまなイメージがおいてあるので、探して試してみましょう!

JupyterLabはセルごとに実行でき、実行結果がすぐ表示されるため非常にプログラミングしやすいです。是非利用してみましょう!

タイトルとURLをコピーしました