
Windows上でコンテナ開発を行う際、「Docker Desktopのメモリ消費が重くて作業がつらい」「会社のPCで商用利用ライセンスの制約がある」といった悩みを抱えているエンジニアは少なくありません。
起動するたびにメモリを数GBも消費し、タスクトレイに常駐し続けるDocker Desktop。この課題を一変させるWindowsネイティブの新しいコンテナ実行基盤が、Microsoftの「WSL Containers(CLI名:wslc)」です。
WSL(Windows Subsystem for Linux)の拡張機能として動作するため、重い常駐デーモンやサードパーティ製アプリを介さず、Windowsのコマンドラインから直接Linuxコンテナを高速にビルド・起動できます。
この記事では、パブリックプレビューの提供が始まったWSL Containersの仕組みとメリット、プレビュー有効化手順から、wslcコマンドの基本操作、Webサーバー(Nginx)の立ち上げ、GPUパススルーによるローカルLLM(Ollama)の高速駆動、Docker Desktopとの違いや現在の制限事項までを実践検証に基づいて詳しく解説します。
この記事で行うこと
前提条件と動作環境
| 項目 | 内容 |
|---|---|
| OS | Windows 11 Pro、Enterprise、またはEducation(Windows 10 22H2 Pro以上も可) |
| CPU | 64bit互換CPU(Intel VT-x / AMD-V 有効) |
| メモリ | 8GB以上(ローカルLLM実行時は16GB〜32GB以上を推奨) |
| WSL | WSL 2(プレリリース版 2.9.4以降) |
| 機能 | 仮想マシン プラットフォーム(有効) |
注意点として、WSL ContainersはHyper-Vの分離コンテナ技術を使用するため、Windows Homeエディションでは動作しません。Pro以上のエディションをご用意ください。
注意点
1. WSL Containersとは何か:なぜDocker Desktopが不要になるのか
WSL Containersは、WSL 2の内部に直接統合されたMicrosoft公式のコンテナランタイムです。
これまでWindows上でLinuxコンテナを動かすには、常駐型の仮想マシンとGUIアプリがセットになったDocker Desktopをインストールするのが標準的でした。しかし、Docker Desktopはバックグラウンドで数GBのメモリを常時消費する上、従業員250人以上または年間売上1,000万ドル以上の組織では有料ライセンスが必要です。
WSL Containersはこれらの問題を解消するために設計されました。
主な違いとアーキテクチャの比較
| 比較項目 | Docker Desktop | WSL Containers(wslc) |
|---|---|---|
| 開発元 | Docker社 | Microsoft |
| アーキテクチャ | 独自VM + 常駐Dockerデーモン | WSL 2ネイティブ統合(デーモンレス) |
| メモリ消費 | 1GB〜数GB(常駐) | 必要なコンテナ実行時のみ(超軽量) |
| コマンド体系 | docker コマンド | wslc(container)コマンド ※Docker互換 |
| ライセンス | 大規模組織では商用有料ライセンス | Windows標準機能(追加ライセンス費用なし) |
| Docker Compose | 完全対応 | 現時点で未対応(単一コンテナ中心) |
| ハードウェア連携 | 設定が必要 | GPU / NPUパススルーを標準サポート |
常駐デーモンを持たない「デーモンレス構造」のため、コマンドを実行した瞬間にコンテナが立ち上がり、コンテナを停止すれば即座にリソースがWindows側へ解放されるのが最大の強みです。
2. WSL Containersの導入とセットアップ手順
WSL Containersを利用するには、WSLを最新のプレリリースビルドへ更新する必要があります。
手順1:PowerShellを管理者として起動する
スタートメニューを右クリックし、「ターミナル(管理者)」または「PowerShell(管理者)」を選択して起動します。
手順2:プレリリース版WSLへアップデートする
以下のコマンドを実行して、WSLを最新のプレリリース版(バージョン2.9.4以降)へ更新します。
wsl --update --pre-release
アップデートのダウンロードとインストールが完了したら、一度WSLを完全に終了して設定を反映させます。
wsl --shutdown
手順3:インストールの確認
ターミナルを再度開き、WSLおよびコンテナツールのバージョンを確認します。
wsl --version
出力結果でWSLのバージョンが2.9.4以上であることを確認したら、コンテナCLIが利用可能かチェックします。
wslc --version
バージョン番号が表示されれば、セットアップは完了です。 ※環境によっては container --version というエイリアスコマンドでも動作します。
3. 基本的なwslcコマンドの使い方(Docker互換)
wslc のコマンド体系は、エンジニアが使い慣れているDockerコマンドと高い互換性を持っています。
コンテナの起動(wslc run)
公式のNginxイメージを取得し、バックグラウンドで起動する例です。
wslc run -d -p 8080:80 --name my-web nginx
-d: バックグラウンド(デタッチモード)で実行-p 8080:80: ホスト(Windows)のポート8080をコンテナのポート80に転送--name my-web: コンテナに名前を付与
コンテナが起動したら、ブラウザで http://localhost:8080 にアクセスしてください。「Welcome to nginx!」の初期画面が表示されれば正常に動作しています。
実行中のコンテナ一覧確認(wslc ps)
wslc ps
起動中のコンテナID、イメージ名、ステータス、ポート転送設定が一覧で表示されます。停止中のコンテナも含めて確認したい場合は wslc ps -a を使用します。
ログの確認と対話的シェル起動
コンテナの標準出力を確認するには以下のコマンドを実行します。
wslc logs my-web
コンテナ内部のBashシェルに入って作業したい場合は、exec コマンドを使用します。
wslc exec -it my-web bash
コンテナの停止と削除
作業が完了したコンテナを停止・削除する手順です。
# コンテナの停止
wslc stop my-web
# コンテナの削除
wslc rm my-web
ローカルイメージの確認とビルド
ダウンロード済みのコンテナイメージ一覧を確認します。
wslc image ls
Dockerfileから独自のイメージをビルドする場合は、以下のように実行します。
wslc build -t my-custom-app:latest .
4. 応用編:GPUパススルーでローカルLLM(Ollama)を動かす
WSL Containersの非常に強力な機能の1つが、ハードウェアアクセラレーション(GPU / NPU)のネイティブサポートです。
NVIDIA製グラフィックボードを搭載したWindows PCであれば、追加のドライバー設定を行うことなく、コンテナ内からGPUを直接利用できます。
OllamaコンテナのGPU駆動例
ローカルLLM実行ツール「Ollama」をGPU有効化状態で起動します。
wslc run -d --gpus all -p 11434:11434 --name ollama ollama/ollama:latest
--gpus all フラグを付与するだけで、Windows上のNVIDIAドライバーをコンテナが自動認識し、GPUメモリを活用した超高速なLLM推論が可能になります。
モデルの取得と対話実行
コンテナ内でモデル(Googleの軽量モデルGemma 3など)をダウンロードしてチャットを起動します。
# モデルのダウンロード
wslc exec ollama ollama pull gemma3:4b
# チャットの起動
wslc exec -it ollama ollama run gemma3:4b
プロンプトが表示されたら日本語で質問を入力して対話できます。終了する場合は Ctrl + D または /bye を入力します。
REST APIでの疎通確認
別のPowerShellウィンドウから以下のコマンドを実行してAPI経由での動作確認も可能です。
Invoke-RestMethod -Uri "http://localhost:11434/api/tags"
5. うまくいかない場合の確認ポイント
6. よくある質問
7. まとめ
次に読むおすすめ記事
WSL2とDockerを使ったWindows開発環境の構築手順や高速化設定、トラブル解決を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。


