2021-10-12に更新

Dockerを使ってKaggleの環境を構築する

10/12追記:
VSCodeを使いたい場合は「ローカルでDocker+VSCodeを使ったKaggleの環境構築メモ」の方法がおすすめ。
本記事の方法は、上記記事より手軽に試したい場合におすすめ。


爆速でKaggle環境を構築する」の手順に従って、Docker初心者がmac OS上にKaggleのNotebookの実行環境を構築してみたメモ。

環境構築手順

  1. Dockerをインストールする
  2. 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の実行方法

  1. 以下のコマンドを実行する
    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
  2. いくつかURLが出力されるので、ブラウザでそのいずれかのURLへアクセスする
  3. .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の容量が足りなくなったら試してみるのもいいかも

参考

Originally published at marshmallow444.github.io
ツイッターでシェア
みんなに共有、忘れないようにメモ

marshmallow444

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント