wslc build で Dockerfile からカスタムイメージを作る方法【Docker Desktop 不要】

「wslc でも Dockerfile が使えるのか?」と疑問に感じているエンジニアは多いのではないでしょうか。

wslc(WSL Containers)は、2026年6月にパブリックプレビューが始まった Windows 向けの新しいコンテナ実行環境です。Docker Desktop を必要とせず、WSL 上で直接 Linux コンテナを動かせるのが特徴ですが、docker build に相当するイメージビルド機能についての情報はまだ少ない状況です。

この記事では、wslc build コマンドで Dockerfile からカスタムイメージを作成し、wslc run で実行するまでの一連のワークフローを実際に検証した手順をまとめます。Docker の基本的な使い方を知っているエンジニアが、wslc へスムーズに移行できるように、コマンドの対応関係も交えながら説明します。

この記事で行うこと

  • Dockerfile と起動スクリプトを作成する
  • wslc build でカスタムイメージをビルドする
  • wslc image ls でイメージを確認する
  • wslc run でコンテナを起動して動作を確認する
  • wslc tag でタグを付ける

前提条件

項目内容
OSWindows 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

注意点

  • wslc は2026年6月時点でパブリックプレビュー段階です。仕様が変更される可能性があります。
  • 一般提供(GA)は2026年秋が予定されています。
  • 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 の知識をそのまま活用できます。

操作Dockerwslc
イメージのビルドdocker build -t 名前 .wslc build -t 名前 .
イメージ一覧docker image lswslc 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 buildwslc runwslc 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 build -t イメージ名 . で Dockerfile からカスタムイメージをビルドできます
  • wslc image ls でビルド済みイメージを確認できます
  • wslc run --rm イメージ名 でコンテナを起動し、実行結果を確認できます
  • wslc tag でバージョンタグを付けられます
  • コマンド体系は Docker と互換性があり、既存の Dockerfile や知識をそのまま活用できます
  • Docker Desktop を起動しなくても、上記のワークフロー全体が動作することを確認しました

wslc はプレリリース段階ですが、Dockerfile ベースのカスタムイメージビルドから実行までの基本的なワークフローは既に実用的に動作します。Docker の知識があるエンジニアであれば、コマンドの置き換えだけでほぼそのまま移行できます。

正式リリースは2026年秋が予定されているため、気になる方は今のうちにプレビュー版で試しておくのがよいでしょう。

参考情報