
「wslc でも Dockerfile が使えるのか?」と疑問に感じているエンジニアは多いのではないでしょうか。
wslc(WSL Containers)は、2026年6月にパブリックプレビューが始まった Windows 向けの新しいコンテナ実行環境です。Docker Desktop を必要とせず、WSL 上で直接 Linux コンテナを動かせるのが特徴ですが、docker build に相当するイメージビルド機能についての情報はまだ少ない状況です。
この記事では、wslc build コマンドで Dockerfile からカスタムイメージを作成し、wslc run で実行するまでの一連のワークフローを実際に検証した手順をまとめます。Docker の基本的な使い方を知っているエンジニアが、wslc へスムーズに移行できるように、コマンドの対応関係も交えながら説明します。
この記事で行うこと
前提条件
| 項目 | 内容 |
|---|---|
| OS | Windows 11 |
| WSL バージョン | 2.9.3.0 以降(プレリリース版) |
| Docker Desktop | 不要(未起動の状態で検証) |
| 実行環境 | PowerShell 7 |
| wslc の入手方法 | wsl --update --pre-release |
wslc は WSL 2.9.3 以降に含まれるプレリリース機能です。以下のコマンドで WSL をプレリリース版に更新することで利用できます。
wsl --update --pre-release
更新後、PowerShell から wslc コマンドが使えるか確認しておきましょう。
wslc --version
注意点
手順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 未満の可能性があります。以下のコマンドで更新してください。
wsl --update --pre-release
更新後、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 は2026年6月時点でパブリックプレビュー段階のため、Docker Desktop のすべての機能を置き換えるものではありません。プロダクション用途への適用は正式リリース後に改めて評価することをおすすめします。
Dockerfile の書き方は Docker と同じですか?
はい、同じです。wslc は Docker 互換のコマンド体系を採用しており、既存の Dockerfile をそのまま wslc build に渡すことができます。
wslc tag で付けたタグはイメージを複製しますか?
複製はされません。同じ IMAGE ID に別名(タグ)が付くだけです。ディスクの使用量は増えません。
ビルドしたイメージは Docker Hub に push できますか?
wslc push コマンドが提供されている場合は push できる可能性がありますが、2026年6月時点の公式ドキュメントでは確認が取れていません。プレビュー段階の機能であるため、最新の公式情報を確認することをおすすめします。
まとめ
wslc はプレリリース段階ですが、Dockerfile ベースのカスタムイメージビルドから実行までの基本的なワークフローは既に実用的に動作します。Docker の知識があるエンジニアであれば、コマンドの置き換えだけでほぼそのまま移行できます。
正式リリースは2026年秋が予定されているため、気になる方は今のうちにプレビュー版で試しておくのがよいでしょう。

