こんにちは。現役エンジニアの”はやぶさ”@Cpp_Learningです。
WSL2 + Docker + VS Code の Remote – Containers のPython開発環境が最高だったので、構築方法と実践チュートリアルを紹介します。
Contents
いままでのPython開発環境
WSL + VS Code のPython開発環境については下記で紹介しました。

上記と本記事では以下の点が異なります。
- WSL1 ⇒ WSL2 に移行
- Docker 導入
- VS Code の Remote – Containers 導入
各種のインストール手順を説明します。
WSL2インストール
Windows 10 のバージョンが WSL2 の実行に関する要件を満たしていること
BIOS画面からCPUの仮想化を有効にする
以下を参考にBIOS画面からCPUの仮想化を有効にします。
BIOS画面の表示方法はPCによって異なります。私が使っているHP の場合、PC起動時にF10を連打すれば、BIOS画面が立ち上がります。
Linux ディストリビューション:Ubuntu 20.04 LTSのインストール
あとはの通りにやればOKです。手順6で任意のLinux ディストリビューションをインストールします。悩む人には Ubuntu 20.04 LTS をオススメしておきます。
以上で WSL2 のインストール完了です。
Visual Studio Codeインストール
Visual Studio Code(通称VS Code)を公式サイトからインストールします。
以下の手順で VS Code から WSL2 に接続できます。
- VS Code左下の「><」をクリック
- Remote-WSLを選択
- 左下が「>< WSL: Ubuntu」になったら、ターミナルを開く
問題なければ、下図のように表示されます。Windowsマシンで VS Code + Ubuntu ターミナルが使える時点で既に快適です。

Docker Desktopインストール
続いて Docker Desktop をインストールします。インストール途中で WSL2 を利用するか聞かれるので、チェックを入れます
先ほどのターミナルに docker -v と入力し、問題なければ下図のように Docker バージョンが表示されます。

この時点で WSL2 + Docker + VS Code の環境構築完了です。
VS Code 拡張機能:Remote – Containersインストール
最後に VS Code 拡張機能の Remote – Containers をインストールします。あと拡張機能の Docker も便利なので、インストール推奨です。
以下の手順で VS Code から Docker に接続できます。
- プロジェクトフォルダにDockerfile または docker-compose.ymlを用意
- プロジェクトフォルダをVS Codeから開く
- VS Code左下の「><」をクリック
- Reopen in Container を選択
- From Dockerfile を選択
- 左下が「Dev Container: Existing Dockerfile」になったら接続成功
※次章の「チュートリアル」で詳しく説明します
Remote – Containers の使い方から後述するDockerfileの書き方まで、以下の記事が大変参考になりました。
実践 Dockerチュートリアル -Pythonで機械学習アプリ開発-
構築した開発環境を使って、簡単な機械学習サンプルコードを動かしてみます。
適当な場所に下記構成のプロジェクトフォルダ:docker-ml を作成します。
Dockerfile
Python公式イメージに依存関係管理ツールの Poetry を入れたDockerfileを作成します。
下の2行を追加すれば、イメージのビルド時(コンテナ生成時)に pyproject.toml で定義した各パッケージを自動でインストールしてくれます。
pyproject.toml
pyproject.toml には main.py の動作に必要なパッケージをバージョン指定で定義します。
(※) poetry init で pyproject.toml の雛形を作成できます
機械学習サンプルコード main.py
機械学習ソースコードを作成し、main.py という名で保存。モデル保存用フォルダ:modelも事前に作成します。
以上でプロジェクトフォルダ:docker-ml の中身を全て用意できました。
Dockerコンテナ内で機械学習
プロジェクトフォルダをVS Codeから開き、VS Code左下の「><」をクリック後、Reopen in Container を選択します。

From Dockerfile を選択すると、イメージのビルドが実行されます(初回のみ)。

左下が「Dev Container: Existing Dockerfile」になったら接続成功です。

ターミナルに以下のコマンドを入力し、main.pyを実行します。
poetry run python main.py
スコアレポートなどが表示され、学習済みモデルがmodel/decisiontree_model.pklに保存できればOKです。
以上で「実践 Dockerチュートリアル -Pythonで機械学習アプリ開発-」終了です。
【おまけ】チュートリアル後の次ステップ -オリジナル機械学習アプリをつくろう-
main.py 実行後に表示される predict: [‘Adeli’] というのは、predict() による「学習済みモデルで未知のデータを推論した結果」です。
本チュートリアルの次ステップとして、main.py から predict() を切り離し、推論専用のオリジナル機械学習アプリ app.py を作成してみましょう。
例えば、本記事の predict() では未知のデータ[39.2, 17.7, 181, 3740]をコード内にべた書きしてますが、外部から受け取るようにし、推論結果を返すような機械学習アプリを作るのはいかがですか?
まとめ
WSL2 + Docker + VS Code の Remote – Containers のPython開発環境が最高だったので、構築方法と実践チュートリアルを紹介しました。
Docker入門や機械学習アプリ開発の勉強にもなると思うので、参考になれば嬉しいです。
【おまけ】に書いた「オリジナル機械学習アプリ開発」にも、ぜひ挑戦してみて下さい。
