Jupyter NotebookのDockerコンテナ実行は難しい?手順を解説
thumb_docker_01
Jupyter NotebookのDockerコンテナ実行は難しい?手順を解説
開発ツール
アンドエンジニア編集部
2022.01.13
この記事でわかること
Dockerは、「軽量で速い」コンテナソリューションで開発の短サイクル化が可能です
Jupyter Notebookは、科学技術計算や機械学習に強い統合開発環境(IDE)です
Jupyter NotebookとDockerの組み合わせで、多様な開発用途に対応可能です

Dockerの概要

img_dockerjupyter_01

Dockerとは、OSレベル仮想化プラットフォームソリューションです。Dockerイメージを用いたコンテナ仮想化システムを構築し、仮想化実行環境を実現します。Dockerにより環境の複製と配布が容易にできるため、開発のスクラップアンドビルドが効率的に実施できます。 【参考】:Docker

Dockerとは?使いどころやメリット・デメリットについて解説!

Jupyter Notebookとは?

Jupyter Notebookとは、オープンソースソフトウェアの統合開発環境(IDE)です。エディタ・言語処理・デバッグ・実行作業を単一操作環境から利用できるようにしています。Jupyter Notebookはデータ分析機能があるため、ビッグデータのデータ分析・統合にも用いることができます。科学技術計算や機械学習等を目的とする方には特におすすめです。 【参考】:Project Jupyter | Home

JupyterLabとJupyter Notebookの違いですが、JupyterLabとJupyter NotebookはともにProject Jupyterのユーザインターフェイスとなります。JupyterLabはJupyter Notebookの次世代ユーザインターフェイスバージョンで、Jupyter Notebookの機能をカバーします。

Jupyter Notebookとは?その導入・操作方法を解説

DockerとJupyterのメリット

Dockerは単一OS上で複数のコンテナが実行できます。OSで用いるシステム資源は少なく、メモリー効率が高いので、「軽量で速い」と言われています。

Jupyter Notebookは、豊富なライブラリを用いてデータ分析を行うことができます。Jupyter Notebookのドキュメントはプログラムコードに加えて、数式や図式を入れることができるためデータ分析の統合開発環境として人気があります。

Dockerは環境複製が容易で開発・テスト・配布サイクルを短周期で進めることができ、Jupyter Notebookを併用することで科学技術計算やデータ分析の分野でも効率的に開発できます。さらにホスト側はVSCodeを用いて、VSCode Remote Developmentでコンテナ上のJupyter Notebookと接続しデータ分析を行うこともできるため、多様な業務に対応可能です。

Dockerのセットアップ

img_dockerjupyter_02

Dockerでは、Windows版・Mac版・Linux版のダウンロードモジュールが用意されています。Mac版・Windows版ではDocker Desktopを利用し、Linux版ではDocker Engineをインストールしておきます。実際のインストール作業は以降で紹介します。 【参考】:Get Started with Docker

Docker Windows版のセットアップ概要

Docker Desktopは、Docker Hubのサイトからダウンロードできます。インストール時のConfiguration画面の確認が問題なければ、簡単にインストールが完了します。 【参考】:Docker Desktop for Windows 【参考】:Install Docker Desktop on Windows

インストール方法は以下の通りです。 ・ダウンロードモジュールの起動  Docker Desktop Installer.exeを起動します。

・Configuration画面の確認  「Enable Hyper-V Windows Features」と「 Install required Windows components for WSL 2」のオプション設定を確認します。

・インストール実行  手順に従い「Install」を選択し、終了後「Close」を選択します。

・管理者アカウントの追加  管理者アカウントのadministratorとComputer Managementをdocker-usersグループに追加します。

最初の起動時には新しいライセンス条項が表示されますので、「Accept」をクリックすることで利用可能になります。

Docker Mac版のセットアップ概要

Docker DesktopはDocker Hubのサイトからダウンロードできます。Mac版も特に問題なくインストールが完了します。 【参考】:Docker Desktop for Mac 【参考】:Install Docker Desktop on Mac

インストール方法は以下の通りです。 ・ダウンロードモジュールの起動  Docker.dmgをダブルクリックしインストーラを起動します。

・アプリケーションフォルダに登録  Dockerアイコン(Docker.app)をアプリケーションフォルダーにドラッグアンドドロップします。

Windows同様、最初の起動時には新しいライセンス条項が表示されますので、「Accept」をクリックすることで利用可能になります。

Jupyter Notebookを使うは?

img_dockerjupyter_03

Jupyter Notebookを使うには、通常パッケージマネージャを用いてJupyter Notebookをインストールします。”pip install jupyter”等でインストールします。ここではDocker Hubからイメージを入手し、DockerでJupyter Notebookを起動する作業を解説していきます。 【参考】:Docker Hub jupyter

Docker Hubに登録されているイメージは18種類です。多岐に渡る用途から必要なイメージを選択します。代表的な主要イメージの用途は次の通りです。

「基本ベースイメージ」 ・jupyter/base-notebook  condaパッケージマネージャ2種類用notebook・jupyterhub・jupyterlabのパッケージです。

「基本最小パッケージ」 ・jupyter/minimal-notebook  jupyter/base-notebookにコマンドラインツールを同梱したものです。

「R向けイメージ」 ・jupyter/r-notebook  jupyter/minimal-notebookにRインタープリタ・ベース環境を追加したものです。

「科学技術計算向けパッケージ」 ・jupyter/scipy-notebook  jupyter/minimal-notebookにPython科学技術計算関連パッケージを同梱したものです。

「科学技術計算向け機能拡張パッケージ」 ・jupyter/tensorflow-notebook  jupyter/scipy-notebookにAIディープラーニング用ライブラリを追加したものです。

・jupyter/datascience-notebook  jupyter/scipy-notebookとjupyter/r-notebookにデータ分析用Julia・Python・R communitiesを追加したものです。

・jupyter/pyspark-notebook  jupyter/scipy-notebookにApache SparkとPythonモジュールを追加したものです。

「科学技術計算向けApache Sparkフルパッケージ」 ・jupyter/all-spark-notebook  jupyter/pyspark-notebookにApache SparkとPython・R・Scalaモジュールを追加したものです。

Jupyter Notebookのコンテナ起動

Jupyterを起動するには、Docker CLIを用います。一般用途であれば「基本最小パッケージ」であるjupyter/minimal-notebookを使います。科学技術計算向けパッケージの場合は用途に応じて適切なイメージを選択します。 【参考】:Jupyter Docker Stacks

ここでは、事前に”docker pull イメージ名”でイメージをダウンロードしておきます。バージョン指定する場合はTagを指定します。ここではTagはデフォルト指定(latest)とします。 docker pull jupyter/minimal-notebook

起動は次のように行います。ここではコンテナ名をnotebookとします。 docker run -d -P -name notebook jupyter/minimal-notebook

オプションの”-d”はバックグラウンド実行、”-P”はランダム生成されたポートを利用、”-name”はコンテナ名を設定します。必要に応じてオプション指定し、実行してください。

コンテナ内のディレクトリをホスト側のフォルダと同期させる場合は、”docker run”に-vオプションでバインドマウント指定することができます。DockerのSettingでCドライブをマウントしている場合は、以下のように利用できます。 docker run -d -P -v c:/Users:/opt/work -name notebook jupyter/minimal-notebook

表示されたURLにアクセスすることで、Jupyter Notebookにアクセスできます。ポート8888にHTTP接続し、ユーザーインターフェースから停止することもできます。Dockerを停止するには次のようにコマンドを起動します。 docker stop notebook コンテナ削除のコマンドは次のように実行します。 docker rm notebook

Jupyter Notebookが起動しない場合、Docker自体が正常動作するか先に確認してください。”docker run hello-world”が起動できたらDockerは正常です。アクセスできない場合はポート番号やURLが正しいことを実行後のコンソール表示内容を確認してください。

DockerとJupyterで開発環境を整備しましょう

img_dockerjupyter_04

Jupyter NotebookはPythonの開発環境として、科学技術計算全般に効果的です。AI分析やビッグデータ解析が脚光を浴びており、短期間での開発や分析が求められます。Dockerは開発・テスト・配布を短サイクル化することができます。

このソフトウェアスタックと環境を活用し、高まる開発生産性向上の求めに対応するためにも必要な準備を進めていきましょう

気になる人のTwitterをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

eyecatch_visual_coder
Adobe製品を使わない"デザイナー"?「ビジュアルコーダー」が考える、自己満足で終わらないWebデザインとは
三角
2020.06.16

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
この記事をシェア
Twitter
Facebook
LINE
Hatena

編集部おすすめコンテンツ

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT