
Windows上でコンテナ開発を行う際、「Docker Desktopのメモリ消費が重くて作業がつらい」「会社のPCで商用利用ライセンスの制約がある」といった悩みを抱えているエンジニアは少なくありません。
この課題を解決するWindows標準のコンテナ実行基盤が、Microsoftの「WSL Containers(コマンド名:wslc / エイリアス:container)」です。2026年9月29日にリリースされた「WSL 3.0.1」において正式版(GA:一般提供)となり、wsl --update を実行するだけで、Docker Desktopやサードパーティ製ツールを入れずにWindowsのPowerShellから直接Linuxコンテナを高速にビルド・実行できるようになりました。
この記事では、WSL Containers(wslc)の仕組みやコマンド早見表、セットアップ手順、Webサーバー(Nginx)の起動、--gpus オプションを使ったローカルLLM(Ollama)の実行例に加え、検索で特に疑問の多い「wslc compose(Docker Compose)の対応状況と複数コンテナ連携の代替策」までを詳しく解説します。
この記事で行うこと
- WSL Containers(
wslc)の仕組みと、Docker Desktopとの違い・コマンド早見表を確認する wsl --updateでWSL 3.0.1以降へ更新し、wslc(container.exe)を有効化する- Docker互換コマンド(
run、ps、build、restart、stop等)を使った基本操作を実践する --gpusオプションを利用したローカルLLM(Ollama)のコンテナ実行例を確認するwslc compose(Docker Compose)の対応状況と、複数コンテナを連携させる2つの代替アプローチを理解する
前提条件・対象読者
| 項目 | 内容 |
|---|---|
| 対象OS | Windows 11(筆者はWindows 11 Pro ビルド 10.0.26200 環境で実機検証。対応エディションの公式要件はMicrosoftのドキュメントで確認してください) |
| 必要なWSLバージョン | WSL 3.0.1以降(2026年9月29日正式版リリース。プレビュー期に必要だった --pre-release は不要) |
| 最終確認日 | 2026年10月16日 |
| 必要なWindows機能 | 仮想マシン プラットフォーム(有効) |
| 対象読者 | Docker Desktopなしで軽量にコンテナを動かしたい方、wslc のコマンドやCompose対応状況を知りたい方 |
注意点として、Windows 11 Homeエディションで動作するかどうかは、筆者が公式情報・実機のどちらでも未確認です(筆者の検証環境はProエディションです)。Homeで利用する場合は、事前にMicrosoftの公式ドキュメントで要件を確認してください。また、WSL 3.0.1の全体像やWSL 2との違いについては、【WSL 3.0】WSL2との違いと導入手順|正式版コンテナの使い方 もあわせてご覧ください。
1. WSL Containers(wslc)とは?早見表とDocker Desktopとの違い
WSL Containersは、WSL(Windows Subsystem for Linux)の標準機能として統合されたMicrosoft公式のコンテナ実行環境です。
従来Windows上でLinuxコンテナを動かすには、常駐型の仮想マシンとGUIアプリがセットになったDocker Desktopをインストールするのが一般的でした。しかし、Docker Desktopは常駐時のメモリ消費が大きいほか、一定規模以上の企業(従業員250人以上または年間売上1,000万ドル以上)では有料の商用ライセンスが必要になります。
WSL Containers(wslc)を使えば、Windows標準のWSL機能だけでコンテナを直接起動できるため、追加のライセンス費用や重い常駐GUIアプリが不要になります。
wslc(container.exe)の基本&GA追加コマンド早見表
wslc.exe には組み込みエイリアスとして container.exe も用意されており(C:\Program Files\WSL\ に配置)、使い慣れたDockerコマンドに非常に近い構文で操作できます。
| やりたいこと | WSL Containers(wslc)コマンド | container エイリアス例 |
|---|---|---|
| コンテナのバックグラウンド起動 | wslc run -d -p 8080:80 --name my-web nginx | container run -d -p 8080:80 --name my-web nginx |
| 稼働中コンテナの一覧表示 | wslc ps または wslc list | container ps または container list |
| 停止中を含む全コンテナ表示 | wslc ps -a | container ps -a |
| コンテナの再起動(3.0.1で追加) | wslc container restart <コンテナ名> | container container restart <コンテナ名> |
| コンテナの停止・削除 | wslc stop <名前> / wslc rm <名前> | container stop <名前> / container rm <名前> |
| コンテナ内でシェルを実行 | wslc exec -it <コンテナ名> bash | container exec -it <コンテナ名> bash |
| ファイルのコピー(3.0.1で追加) | wslc container cp | container container cp |
| Dockerfileからイメージをビルド | wslc build -t my-app:latest . | container build -t my-app:latest . |
| コンテナ環境の状態確認(3.0.1で追加) | wslc system info | container system info |
| 仮想ネットワークの作成・接続 | wslc network create / wslc network connect | container network create / container network connect |
Docker DesktopとWSL Containers(wslc)の比較
| 比較項目 | Docker Desktop | WSL Containers(wslc) |
|---|---|---|
| 開発元 | Docker社 | Microsoft(WSL標準機能) |
| アーキテクチャ | 独自VM + 常駐Dockerデーモン + GUI | WSLのコンテナ基盤として統合(wslc.exe で操作) |
| メモリ消費・起動速度 | 常駐デーモンによりメモリ消費が大きめ | 軽量(実測比較は wslc vs Docker Desktop を参照) |
| コマンド体系 | docker コマンド | wslc(または container)コマンド ※Docker互換 |
| 商用ライセンス | 大規模組織では有料サブスクリプションが必要 | Windows標準機能のため追加ライセンス費用なし |
| Docker Compose | 標準対応(docker compose) | 3.0.1時点で wslc compose は未提供(後述の代替策を参照) |
| GPUパススルー | 対応 | --gpus オプションで対応(wslc run --help で確認) |
2. WSL Containersの導入とセットアップ手順
WSL Containersを利用するには、WSLをバージョン 3.0.1 以降へ更新します。
手順1:PowerShellを起動してWSLを更新する
PowerShell(またはWindowsターミナル)を開き、以下のコマンドを実行します。2026年9月29日の正式版(GA)リリースにより、以前プレビュー導入時に必要だった --pre-release オプションは不要になりました。
wsl --update
権限エラーが表示される場合は、PowerShellを「管理者として実行」で開き直してから再実行してください。
アップデートが完了したら、一度WSLをシャットダウンして更新を反映させます。
wsl --shutdown
手順2:WSLとwslcのバージョンを確認する
以下のコマンドで、WSLが 3.0.1 以降になっていることを確認します。
wsl --version
続いて、wslc コマンド(およびエイリアスの container コマンド)が使えるか確認します。
wslc --version
筆者の環境では wslc 3.0.1.0(container --version では container 3.0.1.0)と表示されました。これで導入は完了です。
3. 基本的なwslcコマンドの使い方(Docker互換)
実際に wslc コマンドを使って、Webサーバー(Nginx)のコンテナを起動・操作する手順を確認しましょう。
コンテナの起動(wslc run)
公式の nginx イメージを取得し、バックグラウンドで起動します。
wslc run -d -p 8080:80 --name my-web nginx
-d:バックグラウンド(デタッチモード)で実行する-p 8080:80:Windowsホスト側のポート8080をコンテナのポート80に転送する--name my-web:コンテナにmy-webという名前を付ける
起動したら、ブラウザで http://localhost:8080 を開きます。「Welcome to nginx!」の画面が表示されれば成功です。
稼働中コンテナの一覧確認(wslc ps / wslc list)
wslc ps
起動中のコンテナID、イメージ名、状態、ポート転送(127.0.0.1:8080->80/tcp)が一覧表示されます。停止中のコンテナも含めて表示したい場合は wslc ps -a を実行します。
ログの確認・シェル接続・コンテナ再起動
コンテナの標準出力ログを確認する場合は logs、コンテナ内部のBashシェルに入る場合は exec を使用します。
# 標準出力ログの確認
wslc logs my-web
# コンテナ内部のBashシェルを対話モードで開く
wslc exec -it my-web bash
また、WSL 3.0.1の正式版からは、稼働中のコンテナを再起動する wslc container restart コマンドも追加されています。
wslc container restart my-web
コンテナの停止・削除とDockerfileビルド
作業が終わったコンテナを停止・削除するコマンドは以下のとおりです。
# コンテナの停止
wslc stop my-web
# コンテナの削除(wslc remove my-web でも可)
wslc rm my-web
ローカルの Dockerfile から独自イメージをビルドする場合は、wslc build を使用します(詳しい手順は WSL Containers(wslc)でDockerfileをビルド・実行する手順 で実機解説しています)。
wslc build -t my-custom-app:latest .
4. wslcでDocker Compose(wslc compose)は使える?対応状況と代替策
検索で非常に多く調べられているのが、「wslc compose で docker-compose.yml(compose.yaml)を起動できるのか?」という点です。
2026年10月(WSL 3.0.1)時点の対応状況:wslc composeは未実装
結論として、2026年9月29日リリースの正式版(WSL 3.0.1)時点では、wslc に compose サブコマンドは実装されていません。筆者の実機環境(WSL 3.0.1.0)で wslc compose を実行しても「認識されないコマンド」となり、wslc --help のサブコマンド一覧にも含まれていません。
Microsoftの公式ブログ(Windows Developer Blog)では、今後の開発ロードマップの中心として wslc compose への対応が明言されていますが、現時点で複数のコンテナを連携させたい場合は、以下の2つのアプローチを状況に応じて使い分けるのが現実的です。
代替アプローチ1:少数コンテナなら「wslc network」で同一ネットワークに接続する
「Webアプリとデータベース(PostgreSQL / Redis)の2〜3個のコンテナを通信させたいだけ」という場合は、Composeを使わずに wslc network 機能で仮想ネットワークを作成して接続できます。
# 1. コンテナ間通信用のネットワークを作成
wslc network create app-net
# 2. コンテナを起動し、作成したネットワークに接続する
wslc run -d --name db -e POSTGRES_PASSWORD=example postgres:16
wslc network connect app-net db
正式版(3.0.1)では wslc network create でのドライバーオプション指定や、wslc network connect / disconnect による柔軟なネットワーク接続が強化されているため、2〜3個のコンテナ連携であればスクリプト化して十分に運用できます。
代替アプローチ2:compose.yamlが必須ならWSL2(Ubuntu)内のDocker Engineを使う
既存のプロジェクトで複雑な compose.yaml(複数マイクロサービス、ボリューム定義、環境変数ファイル等)がすでに組まれており、docker compose up -d をそのまま実行したい場合は、Docker Desktopを入れずに「WSL2のUbuntuディストリビューション内に直接Docker Engine(docker-ce)と docker-compose-plugin をインストールする」方法が最適です。
- 単一コンテナの高速起動・Dockerfileのビルド・VS CodeのDev Containers開発:Windows側から直接使える
wslcを活用する compose.yamlによるマルチコンテナ一括起動:WSL2(Ubuntu)内のdocker compose(またはPodman Compose)を使用する
この使い分けにより、Docker Desktopの商用ライセンス問題や常駐メモリ消費を回避しながら、あらゆるコンテナ開発に対応できます。
5. 応用編:--gpus オプションでローカルLLM(Ollama)を動かす
wslc run には、ホストPCのGPUをコンテナへ渡す --gpus オプションが用意されています(wslc run --help で確認可能)。
※この章のOllamaの起動例は、今回の3.0.1見直し時には実機のGPU環境で再検証していません。GPUドライバー等の前提条件は環境によって異なる場合があります。
OllamaコンテナのGPU有効化起動
ローカルLLM実行ツール「Ollama」をGPU有効化状態で起動するコマンド例です。
wslc run -d --gpus all -p 11434:11434 --name ollama ollama/ollama:latest
--gpus all を指定することで、利用可能なGPUデバイスをコンテナに渡します。
モデルの取得と対話実行
コンテナ内で軽量モデル(Gemma 3など)を取得して対話を開始します。
# モデルのダウンロード
wslc exec ollama ollama pull gemma3:4b
# チャットの起動
wslc exec -it ollama ollama run gemma3:4b
終了する場合は Ctrl + D または /bye を入力します。別ウィンドウのPowerShellから Invoke-RestMethod -Uri "http://localhost:11434/api/tags" を実行してREST API経由での疎通確認も可能です。
6. うまくいかない場合の確認ポイント
wslcコマンドが見つからない(command not found/ 用語として認識されない):
WSLのバージョンが3.0.1未満の可能性があります。wsl --updateを実行した後、wsl --shutdownで一度停止してからwsl --versionを確認してください。- 仮想化支援機能エラー(Hyper-V / VT-x):
BIOS / UEFI設定でIntel VT-xまたはAMD-Vが有効になっているか、またWindowsの機能の有効化または無効化で「仮想マシン プラットフォーム」がオンになっているか確認してください。 - ポートが競合してブラウザからアクセスできない:
指定したポート(8080など)が既存のDocker Desktopや他のローカルサーバーで使用されていないか、PowerShellでnetstat -ano | findstr 8080を実行して確認してください。
7. よくある質問(FAQ)
Q1. Docker Desktopと同時にインストールして共存できますか?
共存可能です。公開するポート番号(-p 8080:80 など)が競合しなければ、同じWindows PC上でDocker Desktopと wslc の両方を比較・検証できます。
Q2. VS Codeの「Dev Containers」からwslcを使えますか?
使えます。VS Codeの設定(dev.containers.dockerPath)に wslc(または C:\Program Files\WSL\wslc.exe)を指定することで、Docker DesktopなしでDev Containers環境を起動できます。詳しい設定手順は VS CodeとwslcでDev Containers環境を作る手順|Docker不要 で解説しています。
Q3. 既存のDocker Hubのイメージはそのまま使えますか?
筆者の環境では、Docker Hubで公開されている公式の nginx や alpine、python イメージを wslc run や wslc build でそのまま取得・起動できました。
まとめ
WSL Containers(wslc)のポイントをまとめます。
- 2026年9月29日リリースの「WSL 3.0.1」で正式版(GA)となり、
wsl --updateだけで導入できる - Docker Desktopを別途インストールしなくても、
wslc run、wslc ps、wslc build、wslc container restartなどのDocker互換コマンドでLinuxコンテナを直接操作できる - Windows標準機能のため商用ライセンスの懸念がなく、メモリ消費も軽量に抑えられる
wslc composeは3.0.1時点で未実装のため、複数コンテナ連携ではwslc networkを使うか、WSL2(Ubuntu)内のDocker Engineと使い分けるのがおすすめ
まずは wsl --update でWSL 3.0.1へ更新し、wslc run の軽快な動作をぜひ体験してみてください。
本格的なサーバー運用ならVPSがおすすめ
自宅のPCで構築した環境をインターネット上に公開して本番運用するなら、初期費用無料で導入しやすい「さくらのVPS」などのクラウド環境が便利です。
PR
次に読むおすすめ記事
WSL 3.0.1(wslc)を使ったDockerfileビルド、VS Code Dev Containers連携、Docker Desktopとのメモリ使用量比較については、以下の実機検証記事もあわせて参考にしてください。
- 【WSL 3.0】WSL2との違いと導入手順|正式版コンテナの使い方
- VS CodeとwslcでDev Containers環境を作る手順|Docker不要
- WSL Containers(wslc)でDockerfileをビルド・実行する手順
- WSL ContainersとDocker Desktopの違いを比較|移行判断の基準
- Docker環境構築・コマンド運用 完全ガイド

