SIGNATE ファンダメンタルズ分析チャレンジが開催されています。
そのチュートリアル実施にdocker+anaconda環境を要求されているのですが、docker素人すぎてチュートリアルの環境構築方法がよくわかりませんでした。
そこで、色々試して動作確認した際のメモです。(正しいのかは不明)

環境
windows 10 Home
チュートリアル実行環境の構築手順
- dockerのインストール
- dockerにanacondaのイメージを導入
- チュートリアル用データのダウンロード
- docker環境内でチュートリアル実行環境(jupyter)の実行
- 追加pythonパッケージのインストール
dockerのインストール
以下のリンクから実行ファイルをDLし、指示に従ってインストールします。
DLリンク

導入の詳細な解説
インストールが成功しているかは、Windows Power Shellに以下のコマンドを打ち込んで、version情報が出ているかで確認できるようです。
> docker --version
Docker version XXXXXX
dockerにanacondaのイメージを導入
Windows Power Shellを立ち上げ、以下のコマンドを打ち込みます。
docker pull continuumio/anaconda3:2019.03
dockerアプリのImagesタブの画面を確認すると、以下のようにcontinuumio/anaconda3が追加されます。

参考

チュートリアル用データのダウンロード
チュートリアル用データが設置されているgit hubからデータを任意の作業フォルダに展開します。
git cloneを使用しましたが、ZIPでDLしてもいいのかも

docker環境内でチュートリアル実行環境(jupyter)の実行
Windows Power Shellに以下を打ち込むとdockerコンテナが作成されます。
$(pwd)の部分をdata_dirの置いてある任意のフォルダのフォルダのパスに置き換えないとエラーが出ました。${pwd}で行ける場合もあるようです
# チュートリアルデータセットのhandsonフォルダに移動する
cd handson/
# データ配置先のディレクトリを作成
mkdir data_dir
# その後作成したhandson/data_dirに、コンペティションサイトよりデータをダウンロードし配置します。
# dockerでjupyter notebookを起動します。(初回実行時は約2GB程度コンテナイメージをダウンロードします。)
# データ配置先のディレクトリを /path/to としてマウントしています。
# 学習済みモデル提出用のディレクトリ (handson/Chapter02/archive) を /opt/ml としてマウントしています。
# jupyter notebook作業用に handson ディレクトリを /notebook としてマウントしています。
# jupyter notebook は port 8888でtokenとpasswordを空にして、vscode のjupyter pluginからアクセスできるように xsrf 対策を無効化しています。
docker run --name tutorial -v $(pwd)/data_dir:/path/to -v $(pwd)/Chapter02/archive:/opt/ml -v $(pwd):/notebook -e PYTHONPATH=/opt/ml/src -v $(pwd):/notebook -p8888:8888 --rm -it continuumio/anaconda3:2019.03 jupyter notebook --ip 0.0.0.0 --allow-root --no-browser --no-mathjax --NotebookApp.disable_check_xsrf=True --NotebookApp.token='' --NotebookApp.password='' /notebook

ブラウザから「http://localhost:8888/」のURLにアクセスするか、dockerアプリの画面からjupyter notebookの立ち上げが可能です。
dockerアプリ画面

追加pythonパッケージのインストール
dockerアプリからCLIを立ち上げて、追加パッケージインストール用のコマンドを打ち込みます。
dockerアプリ画面

パッケージインストール
# shap用にg++とgccをインストールします
apt-get update
apt-get install -y --no-install-recommends g++ gcc
# 必要なライブラリをインストールします
pip install shap==0.37.0 slicer==0.0.3 xgboost==1.3.0.post0
以上が、チュートリアル環境構築のためのメモとなります。
後はjupyter notebookからノートブックを作成して、チュートリアルを実行できるはずです。
コンペのデータは大概ファイルサイズが大きく、読み込みに時間がかかります。
csvの場合に読み込み速度向上について記事を作成しましたので、ご参考ください。
コメント