
Docker Desktop を起動するたびに、タスクマネージャーの「vmmem」プロセスが数GBのメモリを消費しているのを見て、もう少し軽い選択肢はないかと思ったことはないでしょうか。
2026年5月のMicrosoft Build 2026で正式にパブリックプレビューが開始された「WSL Containers(wslc)」は、Windowsに標準搭載されたdaemonレスのコンテナ実行環境です。Docker Desktopの代替として注目されていますが、「実際のところどれだけ軽いのか」という疑問に対して、数値で検証した記事はまだ少ない状況です。
この記事では、wslc 2.9.3.0(プレリリース)と Docker Desktop(最新版)を同一環境で並べ、アイドル時のメモリ消費とコンテナ起動速度を PowerShell 7 で計測した実測データをもとに比較します。wslcの強みと限界を把握した上で、移行の判断材料にしてください。
この記事でわかること
検証環境
| 項目 | 内容 |
|---|---|
| PC | ASUS ROG Zephyrus G14(AMD Ryzen 9) |
| OS | Windows 11 |
| wslc バージョン | 2.9.3.0(プレリリース) |
| Docker Desktop | 最新版 |
| 計測ツール | PowerShell 7(Measure-Command / Get-Process) |
wslcのインストールは、WSLを最新プレリリース版に更新することで利用できます。
wsl --update --pre-release
更新後、wslc または container.exe コマンドが使えるようになります。
wslcとDocker Desktopのアーキテクチャの違い
まず数値を見る前に、なぜメモリ消費に差が出るのかを押さえておきます。
Docker Desktop は、WSL2上に共有の仮想マシン(VM)を立ち上げ、その中でDocker Engineというデーモンプロセスを常時稼働させる仕組みです。コンテナを1つも動かしていない状態でも、このデーモンが常にメモリを消費し続けます。
一方、wslcはdaemonレスのアーキテクチャを採用しています。Hyper-Vの軽量ユーティリティVMを利用しますが、Docker Desktopのようなバックグラウンドのエンジンプロセスを持たないため、使わない時間のリソース消費が抑えられます。
計測コマンド(再現方法)
以下のコマンドで実際に計測できます。
# アイドル時のメモリ確認(vmmemプロセスの一覧)
Get-Process -Name "vmmem*" | Select-Object Name, WorkingSet64 | ForEach-Object {
[PSCustomObject]@{
Name = $_.Name
MemoryMB = [math]::Round($_.WorkingSet64 / 1MB, 1)
}
}
# wslc でのコンテナ起動速度計測
Measure-Command { wslc run --rm hello-world } | Select-Object TotalSeconds
# Docker Desktop でのコンテナ起動速度計測
Measure-Command { docker run --rm hello-world } | Select-Object TotalSeconds
実測①:アイドル時のメモリ消費
コンテナを1つも起動していない状態で、wslcのみ起動している場合と、Docker Desktopを追加起動した後を比較しました。
| プロセス | wslcのみ | Docker Desktop追加後 | 差分 |
|---|---|---|---|
| vmmemWSL | 1,306.6 MB | 2,429.6 MB | +1,123.0 MB |
| vmmemwslc-cli | 1,716.3 MB | 1,896.5 MB | +180.2 MB |
| 合計 | 3,022.9 MB | 4,326.1 MB | +1,303.2 MB |
Docker Desktop を起動するだけで、コンテナを1つも動かさずに約1.3GBのメモリが追加消費されます。
8GB RAMの環境では、1.3GBという差はブラウザのタブ数やIDEの応答速度に体感として影響してくる数値です。16GB RAM以上の環境では影響は小さくなりますが、「使っていない間もコストを払い続ける」という点は変わりません。
wslcの主な強みは「起動が速い」というよりも、「使っていない時間のリソースを奪わない」という点にあります。
実測②:コンテナ起動速度(キャッシュあり)
イメージが既にキャッシュされている状態での起動速度を比較しました。
| コンテナ | wslc | Docker Desktop |
|---|---|---|
| hello-world | 0.83秒 | 0.65〜0.66秒 |
| ubuntu | 0.73〜0.74秒 | 0.79秒 |
コンテナによってどちらが速いかは逆転していますが、いずれも1秒未満で誤差レベルの差です。「起動速度」という観点ではほぼ同等と見てよいでしょう。
実測③:イメージ初回取得時間(キャッシュなし)
イメージをまだ持っていない状態からの pull 込みの起動時間も計測しました。
| コンテナ | wslc | Docker Desktop |
|---|---|---|
| hello-world | 未記録 | 4.50秒 |
| ubuntu | 9.77秒 | 11.46秒 |
ubuntu のイメージ取得では wslc がやや速い傾向が見られました。ただし、ネットワーク速度に左右されやすい計測なので、環境によって結果は異なる可能性があります。
総評:各観点での比較
| 観点 | wslc | Docker Desktop |
|---|---|---|
| アイドル時メモリ | 約1.3GB節約 | 常時消費 |
| コンテナ起動速度 | ほぼ同等(誤差レベル) | ほぼ同等 |
| daemonの有無 | daemonレス | Docker Engine常駐 |
| 使わない時間のコスト | 追加コストなし | 継続的にメモリ消費 |
| Docker Compose対応 | 現時点で非対応 | 対応 |
| GUI管理画面 | なし(CLI中心) | あり |
| ライセンス | 無料(WSL標準搭載) | 商用利用は有料プランあり |
| エコシステムの成熟度 | パブリックプレビュー段階 | 成熟 |
wslcが向いている人・向いていない人
wslcへの移行を検討してよい人
Docker Desktop を使い続けた方がよい人
wslcのインストール・起動方法
wslc はWSLのプレリリース版に含まれています。以下の手順で利用できます。
# WSLをプレリリース版に更新
wsl --update --pre-release
# バージョン確認
wslc --version
# hello-worldコンテナを実行(動作確認)
wslc run --rm hello-world
Docker と同様のコマンド体系で操作できるため、既存のDocker知識がそのまま活かせます。
注意点
よくある質問
wslcはDockerコマンドと同じように使えますか?
wslc run、wslc ps、wslc stop、wslc build など、Dockerに準拠したコマンド体系を採用しています。container.exe というエイリアスでも呼び出せます。ただし、docker-compose に相当する機能は現時点では搭載されていません。
Docker Desktop を完全にアンインストールしても大丈夫ですか?
Docker Compose を使ったマルチコンテナ開発を行っている場合は、現時点ではDocker Desktopを残した方が安全です。単体コンテナの実行だけであれば、wslcに置き換えることができます。
wslcはどの環境で使えますか?
Windows 11上でWSL(バージョン2.9.3以降のプレリリース)が動作する環境であれば利用できます。AMD・Intel・ARM(Snapdragonプロセッサ)のいずれもサポート対象です。
vmmemプロセスはwslcでも発生しますか?
発生します。wslcもHyper-Vの軽量VMを使用するため、vmmemwslc-cli や vmmemWSL といったプロセスがメモリを消費します。ただし、Docker Desktopほどの常駐型オーバーヘッドはなく、使わない時間の追加消費が抑えられます。
まとめ
実測データで確認した結果をまとめます。
Docker Desktop が重いと感じているWindowsエンジニアにとって、wslcは十分に検討価値のある選択肢です。まずは既存の Docker Desktop 環境と並行して試し、自分のワークフローに合うかどうかを確認してみることをおすすめします。

