概要
WSLコンテナ(WSLC) は、WSL 3.0で一般提供(GA)された、Windows上でLinuxコンテナを直接ビルド・実行・管理する機能である。Docker DesktopやPodman Desktopのようなサードパーティ製ツールを別途インストールしなくても、WSL自体がコンテナの実行基盤になる。
コンテナという概念そのものは コンテナとはなにか、必要性は コンテナはなぜ必要なのか を参照。
2つの入口:CLI と API
WSLコンテナには大きく2つの使い方がある。
- WSL containers CLI:
wslc.exe。エイリアスのcontainer.exeでも同じコマンドが使える。dockerに近い感覚でコンテナのライフサイクルを扱える。 - WSL containers API: ネイティブのWindowsアプリから、アプリのロジックの一部としてLinuxコンテナをプログラム的に起動できる。C / C++ / C#(WinRT)に対応し、NuGetパッケージとして提供。MSBuildやCMakeと統合でき、ビルド工程にコンテナのビルド・デプロイを組み込める。「ローカルAIワークロードを動かす」「クラウドのコンテナ化されたアプリをローカルで試す」といった用途が想定されている。
# GA版で使えるようになった主なコマンド例
wslc container restart # 実行中コンテナの再起動
wslc container cp # tar経由でファイルを出し入れ
wslc system info # 環境の状態を一覧
wslc network connect / disconnect
wslc events # コンテナ活動のリアルタイムストリームアーキテクチャのポイント
セッションモデル(分離と権限)
WSLと同様、クライアントは特権Windowsサービス wslservice.exe を呼び出す。ここが重要な違いで、wslservice.exe は仮想マシンの所有権を保持しない。代わりに子プロセス wslcsession.exe を生成し、そちらが呼び出したユーザーの権限でセッション操作(コンテナ作成、ディレクトリのマウント、ポートのバインドなど)を行う。
これにより、セッション間の強い分離(別プロセス)と、権限の境界強化(特権サービスより低い権限でセッション操作を実行)を両立している。つまり「コンテナ=軽い」だけでなく、WSL本体よりむしろセキュリティ境界を意識した設計になっている。
ストレージ
- セッションVHD: セッションごとに専用のVHDを持ち、利用可能なイメージ・コンテナ・ネットワーク・ボリュームなどの状態を保存。既定の保存先は
%AppData%\Local\wslc\sessions。 - コンテナボリューム: コンテナの削除で消えるスクラッチ領域の外にデータを置く仕組み。Windowsのパスをボリュームとして共有できる。内部ではLinux VM内にvirtiofs共有としてマウントされ、コンテナへbindマウントされる。
- VHDボリューム: ネイティブのLinuxファイルシステムが必要な場合やサイズ上限を設けたい場合に、VHDで裏打ちされたボリュームを作れる。
ネットワーク:consomme
Linux VMの通信はイーサネットフレームとしてvirtioキューに送られ、ユーザー権限で動くWindowsプロセスが受け取ってDNS応答・UDP/TCPルーティング・ポートマッピングを提供する。通信が「そのユーザーのWindowsプロセス」として出ていくため、VPNやファイアウォールとの互換性が高い。
ファイルシステム:virtiofs
Windowsパスへのアクセスはvirtiofs経由。従来のplan9に比べ約2倍高速。WSL3全体の改善でもある。
GPUアクセス
WSLコンテナでは、非特権ユーザーでもコンテナ内からGPUへアクセスできる。これにより、AIモデルの推論やグラフィックスツールをコンテナ内でアクセラレートできる。AIワークロードをクリーンな隔離環境で動かしたい場合に効いてくる。詳細は WSLでローカルLLMにGPUを使うメリット・デメリット。
企業向けの管理・監視
- Microsoft Defender for Endpoint (MDE): 既存のWSL向けプラグインがコンテナにも対応。コンテナ内のプロセス・ファイル・ネットワーク活動をWindowsホストと紐づけて可視化し、別のセキュリティワークフローを作らずに調査できる。
- Microsoft Intune: 「WSLコンテナ機能の許可/禁止」「プル可能なレジストリの許可リスト」を制御。組織が承認したレジストリのイメージだけを使わせる、といったガバナンスが可能。
エコシステムと現状の制約
GA時点で周辺ツールの対応が進んでいる。
- VS Code dev containers:
wslcを既定ドライバとして使える - VS Code containers拡張:
wslc対応 - Aspire: WSL Containersをコンテナランタイムとして利用可能
- Lazywslc: TUIダッシュボード
- WSL Container Desktop: WinUI 3製のデスクトップアプリ(k3sやレジストリ管理も)
- wslc-remote: WSLディストロ内から
wslcを叩くラッパー
制約: wslc compose(Compose対応)はまだ未対応で、次期の重点項目とされている。既存のcompose.yamlをそのまま使えるようにするのが目標。
まとめ
- WSLコンテナは「Windowsに内蔵されたLinuxコンテナ実行基盤」。
wslc.exeと API の2つの入口がある。 - セッション分離と低権限実行で、軽さとセキュリティ境界を両立。
- virtiofs・consomme・GPUアクセスといった低レイヤの改善を、まずコンテナ向けに投入している。
- 企業管理(Intune/MDE)まで最初から想定しているのがWSLの独自色。
関連ノート
参考資料
- Microsoft Windows Developer Blog: WSL containers is now generally available(確認日: 2026-10-17)
- Microsoft DevBlogs: WSLC Architecture deep dive(確認日: 2026-10-17)
- Microsoft DevBlogs: WSL container is now available for public preview(Build 2026)(確認日: 2026-10-17)
- GitHub: microsoft/WSL Releases(確認日: 2026-10-17)