最終更新:

WSL2とDev Containerの違いは?併用する構成と選び方を図解


WSL2とDev Containerを併用 1 Windows + WSL2 WSL2は管理された軽量VMを使う VM内にLinuxカーネル Linux側へソースを配置する例 2 コンテナエンジン WSL2バックエンドなどを使用 イメージ・ネットワークを管理 ホストとのマウントを確認 3 Dev Container devcontainer.jsonで環境定義 VS Codeからコンテナ内へ接続 CPU・依存の版・権限差は確認 役割が違うので二者択一ではない WSL2とDev Containerを併用 1 Windows + WSL2 WSL2は管理された軽量VMを使う VM内にLinuxカーネル Linux側へソースを配置する例 2 コンテナエンジン WSL2バックエンドなどを使用 イメージ・ネットワークを管理 ホストとのマウントを確認 3 Dev Container devcontainer.jsonで環境定義 VS Codeからコンテナ内へ接続 CPU・依存の版・権限差は確認 役割が違うので二者択一ではない
役割が違うので二者択一ではない
ひよこ ひよこ
Windowsの開発環境は、WSL2かDev Containerの二択なの?
ペンギン先生 ペンギン先生
二択ではないよ。WSL2はWindows上でLinuxを動かす基盤で、Dev Containerは開発環境をコンテナで定義する仕組み。役割が違うので組み合わせて使えるんだ。
ひよこ ひよこ
WSL2はWindowsにLinuxを直接入れるの?
ペンギン先生 ペンギン先生
管理された軽量な仮想マシンの中で、本物のLinuxカーネルを動かすよ。その上でUbuntuなどのディストリビューションを利用する。WindowsカーネルがそのままLinuxの処理をするわけではないんだ。
ひよこ ひよこ
Dev Containerは何を共有するの?
ペンギン先生 ペンギン先生
devcontainer.jsonやDockerfileなどで、ツール・ランタイム・拡張機能・起動設定を共有できるよ。VS Codeではコンテナ内の環境に接続して開発する。ソースはマウントしたり、コンテナ用ボリュームへ取得したりするんだ。
ひよこ ひよこ
チーム全員が完全に同じになる?
ペンギン先生 ペンギン先生
差を減らせるけれど、ゼロにはならないよ。CPUがarm64かamd64か、ホストの権限、イメージのタグ、依存関係の固定方法などで違いが残る。秘密情報まで設定ファイルに書いて共有してはいけないんだ。
ひよこ ひよこ
併用するとどういう構成になる?
ペンギン先生 ペンギン先生
Windowsの上にWSL2、そのLinux環境を使うコンテナエンジン、その上にDev Containerという構成が一例だよ。Docker DesktopのWSL2バックエンドを有効にした環境なら、WSLで開いたフォルダをコンテナで開き直せるんだ。
ひよこ ひよこ
ファイルはCドライブに置いておけばいい?
ペンギン先生 ペンギン先生
Linux側のツールで大量に読み書きするなら、まずWSLのLinuxファイルシステム内に置く方法を検討しよう。/mnt/cはWindows側との境界をまたぐ。どの方式でも必ず速いとは限らないので、ビルドや依存関係の展開で測るといいよ。
ひよこ ひよこ
GPUや起動速度で決めるなら?
ペンギン先生 ペンギン先生
GPUはドライバー、GPU対応ランタイム、コンテナへの割当などを含めて判断しよう。起動時間も初回イメージ取得・ビルドと、既存コンテナの再利用では違う。固定の秒数や「GPUなら必ずこちら」で比べるのは難しいんだ。
ひよこ ひよこ
まず何から始めるのがいいかな?
ペンギン先生 ペンギン先生
Linuxの操作を学ぶならWSL2で始めてもいいし、チームに既存のdevcontainer設定があるならそれにそろえるのが実用的だよ。他人の設定は起動時にコマンドを実行しうるので、内容を確認してから信頼しよう。

役割を比べる

観点WSL2Dev Container
何を提供するかWindows上のLinux実行環境プロジェクト単位の開発環境定義
主な共有物セットアップ手順などdevcontainer.json、Dockerfileなど
共存コンテナエンジンの基盤にもなるWSL2上のエンジンでも利用可能
残る管理ディストリビューション・依存関係の更新ベースイメージ・依存関係・権限の更新

併用時に迷いやすい「ソースの場所」

Linuxのツールを使う例では、/home/ユーザー名/projectにソースを置き、VS CodeのWSL拡張で開いた後、Dev Containersの「Reopen in Container」を利用します。前提はWSL2と対応コンテナエンジンが動作していることです。Windows上のパスを使う方式もありますが、境界をまたぐI/Oを含めて比較します。

再現性を高めるには、設定だけでなくイメージの版、依存関係のロックファイル、CPU対応もそろえます。コンテナを消しても残すソース・データと、作り直せる環境を分けることが重要です。

参考資料

確認日:2026年9月26日。製品の仕様・料金・対応環境は導入時にも確認してください。