
「wslc でも Dockerfile が使えるのか?」と疑問に感じているエンジニアは多いのではないでしょうか。
wslc(WSL Containers)は、2026年6月にパブリックプレビューが始まり、2026年9月29日(現地時間)に正式版(GA)になった Windows 向けのコンテナ実行環境です。Docker Desktop を必要とせず、WSL 上で直接 Linux コンテナを動かせるのが特徴ですが、docker build に相当するイメージビルド機能についての情報はまだ少ない状況です。
※本記事のビルド手順はプレビュー期(2026年6月、WSL 2.9.3.0)に検証したものです。正式版(WSL 3.0.1)の概要と更新手順は 【WSL 3.0】WSL2との違いと導入手順|正式版コンテナの使い方 をご覧ください。
この記事では、wslc build コマンドで Dockerfile からカスタムイメージを作成し、wslc run で実行するまでの一連のワークフローを実際に検証した手順をまとめます。Docker の基本的な使い方を知っているエンジニアが、wslc へスムーズに移行できるように、コマンドの対応関係も交えながら説明します。
この記事で行うこと
- Dockerfile と起動スクリプトを作成する
wslc buildでカスタムイメージをビルドするwslc image lsでイメージを確認するwslc runでコンテナを起動して動作を確認するwslc tagでタグを付ける
前提条件
| 項目 | 内容 |
|---|---|
| OS | Windows 11 |
| WSL バージョン | 検証時は 2.9.3.0 以降(プレリリース版)。正式版は 3.0.1 以降 |
| Docker Desktop | 不要(未起動の状態で検証) |
| 実行環境 | PowerShell 7 |
| wslc の入手方法 | wsl --update(検証時のプレビュー期は wsl --update --pre-release) |
wslc は、プレビュー期は WSL 2.9.3 以降のプレリリース版に含まれていました。2026年9月29日リリースの WSL 3.0.1 以降では正式版として提供され、--pre-release は不要です。以下のコマンドで WSL を更新します。
wsl --update
更新後、PowerShell から wslc コマンドが使えるか確認しておきましょう。
wslc --version
注意点
- 本記事の手順は2026年6月のプレビュー期に検証したものです。wslc は2026年9月29日に正式版(GA)になりましたが、コマンドの出力などは更新により変わる場合があります。
wslc buildの動作には WSL 2 が有効になっている環境が必要です。
手順1:作業ディレクトリと必要なファイルを準備する
任意のディレクトリに、Dockerfile と起動スクリプト hello.sh の2ファイルを作成します。
以下の内容で Dockerfile を作成します。
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY hello.sh .
RUN chmod +x hello.sh
CMD ["/app/hello.sh"]
次に、同じディレクトリに hello.sh を作成します。
#!/bin/bash
echo "==============================="
echo " Hello from wslc custom image!"
echo " Built with: wslc build"
echo " Date: $(date)"
echo " Hostname: $(hostname)"
echo "==============================="
Dockerfile の書き方は Docker と完全に同じで構いません。wslc は Docker 互換のコマンド体系を採用しているため、既存の Dockerfile をそのまま利用できます。
ここでのポイントは COPY hello.sh . の行です。ビルド時にホスト側の hello.sh がコンテナ内の /app/ にコピーされます。
手順2:wslc build でイメージをビルドする
PowerShell で作業ディレクトリに移動し、以下のコマンドを実行します。
wslc build -t my-wslc-app .
-t my-wslc-app でイメージ名とタグを指定しています。末尾の . はビルドコンテキスト(Dockerfile のある場所)を指します。Docker の docker build と同じ書き方です。
ビルドにかかった時間を計測したい場合は Measure-Command を使えます。
Measure-Command { wslc build -t my-wslc-app . } | Select-Object TotalSeconds
筆者の環境(ubuntu:latest のベースイメージ pull + curl のインストール + スクリプトのコピーを含む)では、約17秒でビルドが完了しました。
TotalSeconds
------------
17.1888839
手順3:wslc image ls でイメージを確認する
ビルドが完了したら、イメージの一覧を確認します。
wslc image ls
出力例:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-wslc-app latest 6a268de94b1e 6 seconds ago 118.44 MB
mcr.microsoft.com/devcontainers/base ubuntu 14d6f99e2ac0 2 weeks ago 836.50 MB
ubuntu latest 5a4c6b929c57 2 weeks ago 100.15 MB
hello-world latest e2ac70e7319a 3 months ago 0.01 MB
docker image ls とほぼ同じ列構成で出力されます。REPOSITORY、TAG、IMAGE ID、CREATED、SIZE という情報が確認できます。my-wslc-app がリストに表示されていればビルド成功です。
手順4:wslc run でカスタムイメージを実行する
作成したイメージを実行します。
wslc run --rm my-wslc-app
--rm オプションを付けると、コンテナ終了後に自動的に削除されます。動作確認だけが目的の場合は付けておくのがおすすめです。
実行結果:
===============================
Hello from wslc custom image!
Built with: wslc build
Date: Tue Jun 30 06:35:27 UTC 2026
Hostname: d784833b9b2c
===============================
hello.sh に書いた内容がそのまま出力されています。Hostname にはコンテナ ID の一部が入るため、実行のたびに異なる値になります。
手順5:wslc tag でタグを付ける
バージョン管理のために、作成したイメージにタグを付けておきます。
wslc tag my-wslc-app my-wslc-app:v1.0
タグ付け後にイメージ一覧を確認すると、同じ IMAGE ID に2つのタグが付いた状態になります。
wslc image ls
出力例:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-wslc-app latest 6a268de94b1e 15 seconds ago 118.44 MB
my-wslc-app v1.0 6a268de94b1e 15 seconds ago 118.44 MB
latest と v1.0 の IMAGE ID が同一であることが確認できます。Docker の docker tag と全く同じ挙動です。
Docker コマンドとの対応表
wslc のコマンドは Docker と互換性があります。既存の Docker の知識をそのまま活用できます。
| 操作 | Docker | wslc |
|---|---|---|
| イメージのビルド | docker build -t 名前 . | wslc build -t 名前 . |
| イメージ一覧 | docker image ls | wslc image ls |
| コンテナの実行 | docker run --rm 名前 | wslc run --rm 名前 |
| タグ付け | docker tag 元 先:タグ | wslc tag 元 先:タグ |
うまくいかない場合の確認ポイント
wslc コマンドが見つからない場合
WSL のバージョンが古い可能性があります(プレビュー期は 2.9.3 以降、正式版は 3.0.1 以降)。以下のコマンドで更新してください。
wsl --update
更新後、PowerShell を再起動して wslc --version で確認します。
ビルドがエラーで止まる場合
Dockerfile の COPY hello.sh . が失敗する場合は、hello.sh が Dockerfile と同じディレクトリに存在するか確認してください。ビルドコンテキスト(末尾の .)はカレントディレクトリを指しているため、ファイルの配置場所が重要です。
hello.sh の実行権限エラーが出る場合
Dockerfile 内に RUN chmod +x hello.sh を含めているか確認してください。Windows で作成したシェルスクリプトは実行権限が付いていないことがあります。
よくある質問
wslc は Docker Desktop の代わりになりますか?
wslc build、wslc run、wslc tag などの基本的なコンテナワークフローは Docker Desktop なしで動作します。ただし wslc は Docker Desktop のすべての機能を置き換えるものではありません(例: Docker Compose 相当の wslc compose は2026年10月時点で未提供)。プロダクション用途へ適用する場合は、自社の要件に合うか評価することをおすすめします。
Dockerfile の書き方は Docker と同じですか?
基本的な書き方は同じで、筆者が試した Dockerfile は wslc build でそのままビルドできました。Dockerfile のすべての機能に対応しているかは、筆者は確認していません。
wslc tag で付けたタグはイメージを複製しますか?
複製はされません。同じ IMAGE ID に別名(タグ)が付くだけです。ディスクの使用量は増えません。
ビルドしたイメージは Docker Hub に push できますか?
wslc push コマンドは wslc --help のコマンド一覧に表示されます(筆者の3.0.1環境で確認)。レジストリへの実際の push は、この記事では検証していません。
まとめ
wslc build -t イメージ名 .で Dockerfile からカスタムイメージをビルドできますwslc image lsでビルド済みイメージを確認できますwslc run --rm イメージ名でコンテナを起動し、実行結果を確認できますwslc tagでバージョンタグを付けられます- コマンド体系は Docker と互換性があり、既存の Dockerfile や知識をそのまま活用できます
- Docker Desktop を起動しなくても、上記のワークフロー全体が動作することを確認しました
筆者の検証では、Dockerfile ベースのカスタムイメージビルドから実行までの基本的なワークフローが動作しました。Docker の知識があるエンジニアであれば、コマンドの置き換えで移行しやすいと考えられます。
2026年9月29日に正式版になったため、気になる方は wsl --update で更新して試してみてください。
本格的なサーバー運用ならVPSがおすすめ
自宅のPCで構築した環境をインターネット上に公開して本番運用するなら、初期費用無料で導入しやすい「さくらのVPS」などのクラウド環境が便利です。
PR
次に読むおすすめ記事
WSL2とDockerを使ったWindows開発環境の構築手順や高速化設定、トラブル解決を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。


