Dockerを使ってKaggleの環境を構築する
10/12追記:
VSCodeを使いたい場合は「ローカルでDocker+VSCodeを使ったKaggleの環境構築メモ」の方法がおすすめ。
本記事の方法は、上記記事より手軽に試したい場合におすすめ。
「爆速でKaggle環境を構築する」の手順に従って、Docker初心者がmac OS上にKaggleのNotebookの実行環境を構築してみたメモ。
環境構築手順
- Dockerをインストールする
- terminalにて、以下のコマンドを実行する
$ docker run --rm -it kaggle/python
→これにより、Kaggle Python docker imageがPullされる
つまづいたところ
- コマンド実行時に、以下のようなエラーが出て失敗した
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Dockerを起動してから実行することで、うまくいった
open /Applications/Docker.app
Notebookの実行方法
- 以下のコマンドを実行する
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
- いくつかURLが出力されるので、ブラウザでそのいずれかのURLへアクセスする
.ipynb
ファイルを開くと編集・実行できる
1.のコマンドを短くする方法
.bash_profile
へ、以下を追記する
kaggle_jupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}
これにより、terminalで以下を実行するだけでよくなる
$ kaggle_jupyter
メモ
- 実行にかかった時間は、Dockerを使わずVSCodeで実行した時に比べると1.25倍ほどかかった。それでもKaggleのKernel上で実行するより早い。いちいちローカルにライブラリをインストールする必要がないので、一度この方法で環境構築しておくと後が楽になりそう
- コマンド内の
--rm
の意味:クリーンアップ- コンテナの終了時に、自動的にコンテナをクリーンアップし、ファイルシステムを削除する
- コマンド内の
-it
の意味:オプション-i
と-t
の指定-i
(=--interactive
):標準入力-t
(=--tty
):擬似端末
- Dockerのコンテナの中にログインするには、以下のコマンドを実行する
docker run -it (コンテナ名) bash
- この方法はかなり多くの容量を要するので、クラウド上にこの環境を構築する手もある。もしmacの容量が足りなくなったら試してみるのもいいかも