Windows上でLinuxコンテナが直接動く「WSL container」がPublic Previewになった、というニュースを見かけました。最初にニュースを見たときは「これってもう使える機能なんだろうか?」というのが正直な感想でした。
調べてみると、答えは「使える…けれど正式版ではない」という温度感。ニュースを眺めているだけだとよくわからない部分も多かったので、今回は実際に手元のマシンに入れて試しています。「Docker Desktopをなんとなく入れているけど、中身は正直よくわかっていない」という感覚の人には関係してきそうな話です(自分もそちら側です😅)。
⚠️この記事の情報は2026年7月時点のものです。WSL containerは現在Public Preview(プレビュー版)の段階なので、正式リリースまでにコマンドや仕様が変わる可能性がありますのでご注意を!
また、こちらの内容を「なごあずの集い#9」(JAZUG 名古屋支部)にてLTした資料を以下に添付します。
- 1. そもそもWindowsでLinuxコンテナを動かすには
- 2. WSL containerを簡単にいうと
- 3. 「wsl」の新バージョンが「wslc」なのか?
- 4. これはDockerなのか?
- 5. 検証環境
- 6. WSL containerを導入してみる
- 7. Nginxコンテナを動かしてみる
- 8. Containerfileからビルドしてみる
- 9. 既存のWSL環境はどうなるのか
- 10. 現時点でできないこと
- 11. Docker Desktopとどう使い分けるか
- おわりに
- 参考リンク
1. そもそもWindowsでLinuxコンテナを動かすには
本題に入る前に、少しだけ前提を整理しておきます。
これまでWindowsでLinuxコンテナ(Dockerコンテナ)を動かすには、これまでは次のような選択肢がありました。
- Docker Desktopを入れる(一番メジャーな方法)
- WSL2のUbuntuの中にDocker Engineを自分で入れる(WindowsのDocker Desktopと連携できるので実は意味は少ない)
- Podmanなどの代替ツールを使う
多くの人は一番とっつきやすいDocker Desktop一択だと思います。自分も「とりあえずDocker Desktop」で済ませてきた側です😅
そこに今回、WSL自体にコンテナを動かす仕組みが組み込まれるという新しい選択肢が出てきたというわけです。
ニュースとしては…
- 2026年6月2日 … Build 2026で「public previewが近日公開」として発表
- 2026年6月29日 … WSL 2.9.3のリリースとともにPublic Preview開始
- 一般提供(GA) … 2026年秋を目標(具体的な日付は未公表)
Microsoftとしては、Windows上のコンテナ開発が「サードパーティーツール依存」「ライセンスコスト」「企業側から見た管理のしにくさ」といった課題を抱えている、というのが背景があるのでしょう。つまり単なる便利機能というより、Windows上のLinuxコンテナ基盤をMicrosoft純正(first-party)に持っていくことも考えている?という動きなんですよね。
今回のこの機能を利用するには、現時点ではWSLのpre-release版を導入する必要があります。
⚠️Windows自体をInsider Previewにする必要はなく、WSL本体をpre-release版にするという形です。ここは混同しやすいので注意ですね。
2. WSL containerを簡単にいうと
WSL containerを一言でいうと、
「これまでUbuntuなどを動かしていたWSLに、Linuxコンテナを動かす入口も増えた」
という理解でよさそうです。
誤解しないでほしいのは、WSLそのものがコンテナになったわけではないという点です。この後説明しますが、既存のWSLで作成したUbuntuなどはこれまで通り使えます。
3. 「wsl」の新バージョンが「wslc」なのか?
自分が最初に少し混乱したのがここでした。
今回のバージョンで、新しい機能としてwslcというコマンドが出てきます。では、従来のwslコマンドがwslcに置き換わるのかというと、答えは違います。
wslはこれまで通り存在します。そこに、コンテナ操作用のwslcが追加される、という関係です。
wsl… UbuntuなどのWSLディストリビューションを起動・管理するwslc… Linuxコンテナを起動・管理する
WSL containerには大きく2つの要素があり、1つはLinuxコンテナをビルド・実行・操作するためのCLIであるwslc.exe。もう1つはWindowsアプリからLinuxコンテナを扱うためのAPIだと説明されています。ちなみにcontainer.exeという別名(エイリアス)でもwslc.exeを呼び出せるようです。
イメージとしてはこんな感じです。
Windows
├─ wsl.exe
│ └─ Ubuntu / Debian / AlmaLinux などを起動する
│
└─ wslc.exe(container.exeでも呼べる)
└─ ubuntu:latest / nginx などのLinuxコンテナを起動する
😅正直、名前が似すぎていて最初は「バージョンアップ後の新名称なのかな?」と勘違いしていました。ですが、役割がまったく別のコマンドが増えたと捉えるのがよさそうです。
4. これはDockerなのか?
ここも誤解しやすいところです。
WSL containerは、Dockerそのものではありません。Docker Desktopでもありませんし、Docker Engineそのものという説明でもありませんでした。
ただし、使い勝手はかなりDockerに近いように思えます。たとえば、Nginxコンテナを動かす場合、Dockerならこう書きますが、
PS> docker run -d --rm -p 8080:80 --name web nginx
WSL containerを使用すると以下のようになります。
PS> wslc run -d --rm -p 8080:80 --name web nginx
見比べると、ほぼdockerをwslcに置き換えただけにも見えます。
しかも、Public Previewの時点で以下の実行が可能となっています。
- イメージ操作:
build/pull/push/import/save/inspect/prune - コンテナ操作:
run/exec/logs/stats - ネットワーク:ポート公開(port publishing)
- ボリューム:VHDベースのvolume
- GPU対応(CDIベース)
割と完成度が高くなっている印象です。
つまり、
「Dockerではないが、DockerっぽくLinuxコンテナを動かせるWSL標準の仕組み」
ってことですかね。
Dockerに慣れている人なら学習コストは低そうですし、これからコンテナに入門する人にとっても、Docker Desktopのインストールなしで試せる入口になりそうです。
⚠️後述しますがDocker Composeに相当する機能は現時点で確認できません。「Docker Desktopが不要」と考えるのはまだ早いというところでしょうか。
5. 検証環境
今回の検証環境は以下の通りです。メインPCではなく、GTX 1650を搭載した検証用PCを使いました。
| 項目 | 内容 |
|---|---|
| PC | CPU:第9世代Corei5 メモリ:16GB GPU:GTX1650搭載 |
| OS | Windows 11 HOME |
| WSLバージョン(更新前) | 2.7.10.0 |
| WSLバージョン(更新後) | 2.9.3.0 |

今回の検証環境はあくまで「メイン環境を汚さないための検証用マシン」という位置づけです。
⚠️WSL本体をpre-release版に更新する必要があるため、普段の開発で使っているメインPCではなく、検証用のマシンで試すことを強くおすすめします。
万が一に備えて、既存のWSL環境がある場合はバックアップも取っておきましょう😊 バージョンアップ前に以下を行なっておくとよいでしょう。
PS> wsl -l -v PS> wsl --export Ubuntu D:\backup\Ubuntu-wsl-backup.tar
6. WSL containerを導入してみる
改めて実際に導入していきます。
6-1. WSLをpre-release版に更新する
まず、WSLをpre-release版に更新します。PowerShellで以下を実行します。
PS> wsl --update --pre-release PS> wsl --shutdown
⚠️Microsoft Learnのquickstartにはwsl --updateとだけ書かれている箇所もありますが、previewを確実に取りに行くなら--pre-releaseを付けるのが確実です。
実行すると「Linux用Windowsサブシステムをバージョン2.9.3に更新しています」というメッセージが表示され、更新されました。

6-2. wslcが使えるか確認する
更新が終わったら、wslcコマンドが使えるようになっているか確認します。
PS> wslc version
……ところが、ここでいきなりハマりました😅
更新を実行したのと同じPowerShellでそのままwslc versionを叩いたところ
wslc : 用語 'wslc' は、コマンドレット、関数、スクリプト ファイル、 または操作可能なプログラムの名前として認識されません。
こんなエラーが出ました。

原因はPATH環境変数が既存のターミナルに反映されていないことです。ターミナルを一度完全に閉じて開き直すことで問題は解決します。

wslc.exeはWSLに同梱されているので、Docker Desktopのような別のエンジンをインストールする必要はありません。ここがこの仕組みの手軽なところです。
6-3. hello-worldを動かしてみる
コンテナの世界の定番、hello-worldを動かしてみます。
PS> wslc run --rm hello-world

ワンショットでUbuntuコンテナのコマンドを実行するのも試してみます。
PS> wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"

こちらも問題なく実行できています。
7. Nginxコンテナを動かしてみる
hello-worldだけだと味気ないので、もう少し実用寄りの例としてNginxを動かしてみます。このテストではバックグラウンドで起動して、ポート8080を公開します。
PS> wslc run -d --rm -p 8080:80 --name web nginx

起動したら、curlでアクセスしてみます。
PS> curl http://localhost:8080

動いているコンテナの一覧も確認してみます。
PS> wslc container list

コンテナの中に入って(正確にはコンテナ内でコマンドを実行して)、中身のOSも見てみます。
PS> wslc exec web cat /etc/os-release

確認が終わったら、コンテナを停止します。--rm付きで起動しているので、停止すればコンテナは削除されます。
PS> wslc container stop web

各ステップをまとめておくと、こんな感じでしょうか。
| ステップ | 実行結果 |
|---|---|
wslc run --rm hello-world |
Helloを含む成功メッセージが出る |
ubuntu:latest ... echo ... |
Hello world from WSL container!が出る |
curl http://localhost:8080 |
HTML本文が返ってくる |
wslc container list |
webという名前の実行中コンテナが見える |
wslc exec web cat /etc/os-release |
PRETTY_NAME=などLinuxのOS情報が出る |
8. Containerfileからビルドしてみる
WSL containerは、イメージのビルドもできます。Dockerでいうdocker buildに相当する操作となります。
大きく異なっているのは、定義ファイルの名前がDockerfileではなくContainerfileである点です(Podmanなどでも使われている名前です)。
今回は最小構成として、Nginxに自作のHTMLを1枚載せただけのイメージをビルドしてみます。用意するファイルは2つになります。
myapp/ ├─ Containerfile └─ index.html
Containerfileの中身は以下のようになっています。
FROM nginx:latest COPY index.html /usr/share/nginx/html/index.html
index.htmlは動作確認できれば何でもよいので、こんな感じにしておきます。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>WSL container test</title> </head> <body> <h1>Hello from wslc build!</h1> <p>このページはwslcでビルドしたコンテナから配信されています。</p> </body> </html>
フォルダ作成、設定ファイルの作成後はmyappフォルダに移動し、ビルドと実行を試します。タグ名は-tオプションでつけることができます。
PS> cd myapp PS> wslc build -t myapp . PS> wslc image list PS> wslc run -d --rm -p 8080:80 --name myweb myapp PS> curl http://localhost:8080 PS> wslc container stop myweb

curlの結果に「Hello from wslc build!」が含まれていれば、自分でビルドしたイメージがコンテナとして動いていることが確認できます。

9. 既存のWSL環境はどうなるのか
ここで、今まで使っていたWSLのUbuntuなどがどうなるのか整理しておきます。
結論から言うと、基本的にはそのまま使えます。
WSL containerは、既存のUbuntuなどを置き換えるものではありません。WSLに「Linuxコンテナ用の入口」が追加されたものです。
ただし、「何がどこで管理されるのか」は分けて考える必要があります。
| 種類 | 例 | 考え方 |
|---|---|---|
| WSLディストリビューション | Ubuntu、Debianなど | 従来通りwslで使う |
| WSL内に入れた開発環境 | Python、Node.js、aptで入れたツールなど | 従来通り使う |
| WSL containerのイメージ | ubuntu:latest、nginxなど |
wslc側で管理する |
| Docker Desktopのイメージ | Docker Desktopでpull/buildしたもの | そのまま共有されるとは限らない |
ポイントは、
「WSLのUbuntuと、wslcで扱うコンテナイメージは別物」という点です。
「UbuntuをWSLで動かす」と「ubuntu:latestコンテナをwslcで動かす」は、言葉は似ていても管理の場所が違うことになりそうです。
既存WSLの確認はこれまで通りwsl -l -v、WSL container側のイメージ確認はwslc image listと、入口が分かれています。

10. 現時点でできないこと
ここまで見るとかなり使えそうな印象ですが、Public Previewらしい制約もあります。GitHubのissueなどで報告されている内容を整理しておきます(自分の環境ではすべては未検証です)。
Docker Compose相当の機能がない
現時点で一番大きい制約はこれだと思います。docker-compose.ymlで複数サービスをまとめて立ち上げる、という使い方に相当する公式機能は確認できず、GitHubでもfeature requestとして扱われている段階とのことです。Compose中心で開発しているチームは、現時点ではDocker Desktop継続が安全です。
bind mountの互換性はDockerと同一ではない
Dockerで通っていた-vのパス指定がwslcでは通らない、というエラー報告があるいようです。
Windowsコンテナは扱えない
WSL containerはその名の通りLinuxコンテナ専用です。Windowsコンテナを扱いたい場合は従来通りの手段が必要です。
11. Docker Desktopとどう使い分けるか
ここまでを踏まえて、Docker Desktopとの比較をしてみます。
| 観点 | WSL container(Public Preview) | Docker Desktop |
|---|---|---|
| 提供状態 | Public Preview(GAは2026年秋目標) | 正式版・成熟した製品 |
| 導入 | WSLの更新だけで入る(同梱) | 別アプリのインストールが必要 |
| ライセンス | WSLに同梱(追加コストなし) | 大きい組織では有償契約が必要な場合あり |
| 基本CLI | wslc runなどDockerにかなり近い |
dockerコマンド |
| Compose | 現時点で未対応(要望段階) | 同梱されている |
| Kubernetes | 公式ドキュメントでは確認できず | 含まれている |
| Dev Containers | pre-release版VS Code拡張で対応 | 成熟している |
| GPU | 対応あり(CDIベース、preview機能) | 対応あり |
| Windowsコンテナ | 非対応(Linux専用) | 条件付きで対応 |
使い分けの目安としてはいかのようになるでしょうか。
- WSL containerが向いていそう … 個人開発でのLinuxコンテナ、軽めのWeb/API開発、ローカルAI/MLの実験、Docker Desktopのライセンスを避けたいケース
- Docker Desktopを残したほうがよさそう … Compose中心の開発、安定したDev Containers運用、企業proxy/ミラー前提の環境、既存のDockerエコシステムへの依存が大きいチーム
現状としては、「試す価値は高い。ただしDocker Desktopを今すぐアンインストールする話ではない」というのが今回の実感です。
おわりに
WSL containerは、Docker Desktopをすぐに置き換えるものというより、Windows上のLinuxコンテナ実行環境が、もう一段Windows標準に近づいてきたという印象です。
wsl… WSLディストリビューション用(従来通り)wslc… Linuxコンテナ用(今回追加)
これはDockerそのものではないものの、wslc runやwslc buildのように、Dockerに慣れた人ならかなり近い感覚で触れることができそうです。
「WindowsでLinuxコンテナが直接動く時代が来そう。ただし、今すぐ本番導入するにはまだ様子見」といったところですね😅
参考リンク
- WSL container is now available for public preview(Microsoft Dev Blog) … Public Preview発表の一次情報。GA目標・Intune/GPO・Dev Containers連携について
- WSL container(Microsoft Learn) … CLIとAPIの全体像
- Get started with containers on WSL(Microsoft Learn) … hello-world / Nginx / Containerfileビルドのチュートリアル
- Release 2.9.3(microsoft/WSL GitHub) … previewに含まれる機能範囲のリリースノート
- Build 2026: Furthering Windows as the trusted platform for development(Windows Developer Blog) … Build 2026でのWSL containers発表記事