初心者のメモ

Python enthusiast

Docker起動したJupyter notebookで作成したデータをローカルに保存する方法

ローカルディレクトリをマウント

Dockerで起動したJupyter notebookは、Dockerコンテナ上で動いており、 そこで作成したコードやデータはローカルディレクトリには残りません。

データを保存するには、ローカルディレクトリをマウントする必要があります。

例えば、↓のようにdocker runすると、

$ docker run -it --rm -p 8888:8888 -v "$(pwd):/home/jovyan/work" jupyter/base-notebook

カレントディレクトリをマウントした状態で起動できます。

notebook内のデータはローカル上に残りますし、 予め用意したローカル上のデータをnotebook上で触れるようになります。

プログラムを書いてからデータが残らないことに気づいた場合

コンテナの内容を docker commit でイメージに書き戻し、 run しなおすことでローカルディレクトリをマウントできます。

$ docker stop コンテナ名
$ docker commit コンテナ名 イメージ名
$ docker run -it --rm -p 8888:8888 -v "$(pwd):/notebooks" イメージ名

すでに作ったコンテナでローカルディレクトリをマウントする方法はないらしいです。

参考: