WSL Containers(wslc)使い方|Docker不要・Compose対応

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)の対応状況と複数コンテナ連携の代替策」までを詳しく解説します。

  1. この記事で行うこと
  2. 前提条件・対象読者
  3. 1. WSL Containers(wslc)とは?早見表とDocker Desktopとの違い
    1. wslc(container.exe)の基本&GA追加コマンド早見表
    2. Docker DesktopとWSL Containers(wslc)の比較
  4. 2. WSL Containersの導入とセットアップ手順
    1. 手順1:PowerShellを起動してWSLを更新する
    2. 手順2:WSLとwslcのバージョンを確認する
  5. 3. 基本的なwslcコマンドの使い方(Docker互換)
    1. コンテナの起動(wslc run)
    2. 稼働中コンテナの一覧確認(wslc ps / wslc list)
    3. ログの確認・シェル接続・コンテナ再起動
    4. コンテナの停止・削除とDockerfileビルド
  6. 4. wslcでDocker Compose(wslc compose)は使える?対応状況と代替策
    1. 2026年10月(WSL 3.0.1)時点の対応状況:wslc composeは未実装
    2. 代替アプローチ1:少数コンテナなら「wslc network」で同一ネットワークに接続する
    3. 代替アプローチ2:compose.yamlが必須ならWSL2(Ubuntu)内のDocker Engineを使う
  7. 5. 応用編:--gpus オプションでローカルLLM(Ollama)を動かす
    1. OllamaコンテナのGPU有効化起動
    2. モデルの取得と対話実行
  8. 6. うまくいかない場合の確認ポイント
  9. 7. よくある質問(FAQ)
    1. Q1. Docker Desktopと同時にインストールして共存できますか?
    2. Q2. VS Codeの「Dev Containers」からwslcを使えますか?
    3. Q3. 既存のDocker Hubのイメージはそのまま使えますか?
  10. まとめ
  11. 本格的なサーバー運用ならVPSがおすすめ
  12. 次に読むおすすめ記事
  13. 参考情報

この記事で行うこと

  1. WSL Containers(wslc)の仕組みと、Docker Desktopとの違い・コマンド早見表を確認する
  2. wsl --update でWSL 3.0.1以降へ更新し、wslc(container.exe)を有効化する
  3. Docker互換コマンド(run、ps、build、restart、stop 等)を使った基本操作を実践する
  4. --gpus オプションを利用したローカルLLM(Ollama)のコンテナ実行例を確認する
  5. wslc compose(Docker Compose)の対応状況と、複数コンテナを連携させる2つの代替アプローチを理解する

前提条件・対象読者

項目内容
対象OSWindows 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 nginxcontainer run -d -p 8080:80 --name my-web nginx
稼働中コンテナの一覧表示wslc ps または wslc listcontainer ps または container list
停止中を含む全コンテナ表示wslc ps -acontainer ps -a
コンテナの再起動(3.0.1で追加)wslc container restart <コンテナ名>container container restart <コンテナ名>
コンテナの停止・削除wslc stop <名前> / wslc rm <名前>container stop <名前> / container rm <名前>
コンテナ内でシェルを実行wslc exec -it <コンテナ名> bashcontainer exec -it <コンテナ名> bash
ファイルのコピー(3.0.1で追加)wslc container cpcontainer container cp
Dockerfileからイメージをビルドwslc build -t my-app:latest .container build -t my-app:latest .
コンテナ環境の状態確認(3.0.1で追加)wslc system infocontainer system info
仮想ネットワークの作成・接続wslc network create / wslc network connectcontainer network create / container network connect

Docker DesktopとWSL Containers(wslc)の比較

比較項目Docker DesktopWSL Containers(wslc)
開発元Docker社Microsoft(WSL標準機能)
アーキテクチャ独自VM + 常駐Dockerデーモン + GUIWSLのコンテナ基盤として統合(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とのメモリ使用量比較については、以下の実機検証記事もあわせて参考にしてください。

参考情報