docker + jupyter で画像処理用コンテナ

dockerで画像処理用コンテナをパッと作る。

Dockerfile

FROM jupyter/base-notebook

USER root
RUN apt-get update -y && apt-get install -y python-opencv

USER jovyan
RUN pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master \
jupyter_nbextensions_configurator pillow opencv-python
RUN jupyter contrib nbextension install --user && jupyter nbextensions_configurator enable --user

詳細は以下に

  • ベースのイメージはjupyter公式の最もベーシックなものです。 → jupyter/base-notebook
  • このimageを起動するとjovyanユーザーでnotebookが起動されるので、apt等でシステム側に必要なパッケージをインストールしてます。例としpython-opencvをインストールしてますが、必要なものをインストールしてください。
  • 便利そうなので、nbextensions周りをインストールしてます。

起動

Dockerfileを置いたディレクトリに移動して、

buildDockerfileを変更をしない限りは一度だけ実行すればOKです。

docker build -t jupyter_blog .

run

docker run -it --rm -v $PWD:/home/jovyan/work --name jupyter_blog -p 8888:8888 jupyter_blog

詳細は以下

  • jupyter_blog という名前をつけてbuildしてます。
  • カレントディレクトリをdocker内の /home/jovyan/work にマウントしてます。使う画像ファイルとか .ipynb ファイルとかをここに入れて使ってます。
  • あとは起動後に、 http://localhost:8888/?token=**************** というようなURLが出力されるので、このURLにアクセスするとOKです。

処理例