Ubuntu), and access to the Microsoft Store or the ability to download the package directly.3.0.3.0. Treat both as unverified — read the installed build with wsl --version and cross-check the number against the official release notes (check the documentation).
Virtual Machine Platform and Windows Subsystem for Linux optional features enabled.What to do: Open PowerShell as Administrator, record your current WSL version, check the required features, and export one distribution to a .tar file before touching anything.
wsl --version
wsl --status
wsl --list --verbose
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform | Select-Object FeatureName, State
Get-CimInstance Win32_Processor | Select-Object Name, VirtualizationFirmwareEnabled
Get-PSDrive C | Select-Object Used, Free
Then create the backup (replace Ubuntu with your distribution name and D:\wsl-backup with an existing folder):
New-Item -ItemType Directory -Force -Path D:\wsl-backup | Out-Null
wsl --export Ubuntu "D:\wsl-backup\ubuntu-$(Get-Date -Format yyyyMMdd).tar"
Example: wsl --list --verbose on a working installation prints a header plus one line per distribution:
NAME STATE VERSION
* Ubuntu Stopped 2
The VERSION column shows 2, which means the distribution runs on the WSL 2 architecture. wsl --version prints a block of fields; the first one tells you which branch of the package is answering:
WSL version: <major>.<minor>.<build>.<revision>
Kernel version: <kernel-version>
WSLg version: <wslg-version>
Windows version: <windows-build>
Why: The update is a package replacement, but you still need a rollback point and you need to know whether wsl.exe is answered by the old inbox component or by the updatable package. The kernel line also proves the lightweight utility VM boots — a hard prerequisite for containers.
How to check: The checklist below should be fully ticked before you continue.
wsl --version prints a WSL version line starting with 2. (or 3. if you are already updated)VirtualMachinePlatform state is EnabledVirtualizationFirmwareEnabled is Truewsl --list --verbose lists at least one distributionGet-PSDrive C shows more than 5 GB of Free space.tar backup file exists in D:\wsl-backupIf VirtualizationFirmwareEnabled is False, stop and enable VT-x/AMD-V in UEFI before step 2.

What to do: Shut down all running distributions, update the package, and then check which default-version values your build accepts.
wsl --shutdown
wsl --update
wsl --version
wsl --help
If wsl --update fails because the Store or Windows Update endpoint is unreachable, use the direct download path — but first confirm the flag exists in your build by searching wsl --help output:
wsl --help | Select-String -Pattern "web-download"
wsl --update --web-download
Now read the supported values for the default version and, only if 3 is listed, make it the default for new distributions:
wsl --help | Select-String -Pattern "set-default-version"
wsl --set-default-version 3
Example: a successful run ends with a short progress indicator and a sentence that the update was installed; wsl --version afterwards reports WSL version: 3.<minor>.<build>.<revision>. If the printed value still starts with 2., the old component is still answering — see Troubleshooting.
Why: WSL ships as a Windows package separate from the OS image, so wsl --update swaps the binary and kernel without reinstalling Windows. wsl --shutdown first is required because a running utility VM keeps the old files locked. The --set-default-version value controls only *new* distributions; existing ones keep their recorded version until you convert them, and the source material does not describe a forced per-distribution migration, so check the release notes before converting anything (check the documentation).
How to check: Run the three commands below and confirm each line.
wsl --version
wsl --status
wsl --list --verbose
WSL version starts with 3.wsl --status reports a default distribution and a default version without warningswsl --list --verbose shows your distributions, and the state column is Stopped or RunningOn the reported build number: the channel report announces WSL 3.0 as published and available to everyone but does not publish a build string or a release date, so verify 3.0.3.0 against the installed output of wsl --version and the official release notes rather than trusting a third-party number.
What to do: Prove that three things work: the new build answers, a distribution starts on the new kernel, and the container capability described in the release is present on your machine.
wsl --version
wsl --help | Select-String -Pattern "container"
wsl -d Ubuntu -- uname -r
wsl -d Ubuntu -- sh -c "curl -s -o /dev/null -w '%{http_code}\n' https://example.com"
Example: inside the distribution uname -r prints a kernel release string such as 6.6.x.x-1, and the curl line prints exactly 200, which means DNS and outbound HTTPS work from inside WSL. wsl --help | Select-String -Pattern "container" returns the help lines for the container capability — if it returns nothing, your wsl.exe is still the pre-3.0 build.
| Check | Command | Pass condition | |
|---|---|---|---|
| Build branch | `wsl --version` | first line starts with `3.` | |
| Distribution state | `wsl --list --verbose` | your distro listed, no error | |
| Kernel | `wsl -d Ubuntu -- uname -r` | a kernel release string is printed | |
| Network | `curl ... https://example.com` | `200` | |
| Container capability | `wsl --help \ | Select-String container` | at least one matching help line |
For the container run itself: the source material confirms that WSL 3.0 can run Linux containers in Windows but does not name the subcommand, so take the exact syntax from wsl --help on your build or from the official documentation (check the documentation). Do not paste a command from a blog post into an elevated shell without confirming it appears in your own wsl --help.
Why: A version string alone only proves a package was replaced. Starting a distribution proves the kernel launched, curl proves the virtual network stack is intact, and the help search proves the container feature shipped in the binary you actually run.
Problem. wsl --update fails immediately with a network error.
Error code: Wsl/UpdatePackage/0x80072ee2wsl --help | Select-String "web-download" followed by wsl --update --web-download. Behind an authenticated proxy, first set the machine-wide proxy with netsh winhttp set proxy <proxy-host>:<port> and retry.Problem. A distribution no longer starts after the update.
WslRegisterDistribution failed with error: 0x80370102 together with Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.Virtual Machine Platform feature is off, or VT-x/AMD-V is disabled in firmware. WSL 2 and 3 both boot a real Linux kernel in a lightweight VM, so the hypervisor must be available.Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All
Restart-Computer
After the reboot, Get-CimInstance Win32_Processor | Select-Object VirtualizationFirmwareEnabled must return True before wsl -d Ubuntu will succeed.
Problem. wsl --version still reports WSL version: 2.<...> after a "successful" update.
WSL version: 2.<minor>.<build>.<revision> and wsl --help | Select-String container returns nothing.wsl.exe instead of the updated package, or the terminal session is holding the old binary after the update.wsl --shutdown
Get-AppxPackage *WindowsSubsystemForLinux* | Select-Object Name, Version
wsl --update --web-download
wsl --version
If the version string still starts with 2., remove the stale package, reinstall from the documented source, and restore your data with wsl --import Ubuntu C:\wsl\Ubuntu D:\wsl-backup\ubuntu-<date>.tar --version 3.
You now have a WSL package on the 3.x branch, a bootable distribution on the new kernel, a verified network stack, and a .tar backup you can restore with wsl --import. Next, read the container syntax from wsl --help on your own build and confirm the exact build number and release date in the official release notes before quoting them anywhere.
Is WSL 3.0 an x64-only release, and is 3.0.3.0 the official build number?
The channel report says the release is available to all users and that it adds Linux containers, but it publishes neither an architecture matrix nor a build string. Read the real values from wsl --version on your machine and cross-check 3.0.3.0 against the official release notes (check the documentation).
Do I have to reinstall my Ubuntu distribution after updating to WSL 3.0?
No. The update replaces the WSL package and kernel; distributions keep their files on disk. Export with wsl --export Ubuntu D:\wsl-backup\ubuntu.tar before updating so you can restore with wsl --import if anything breaks.
What is the release date of WSL 3.0?
The source material confirms publication and general availability but gives no date. Confirm it on the official release notes page — do not rely on the date printed in aggregator posts.
Does WSL 3.0 mean I can drop Docker Desktop?
WSL 3.0 adds the ability to run Linux containers directly in Windows, which is new for WSL. The source material makes no comparison with Docker Desktop and names no container CLI or image registry, so evaluate that decision against the official documentation for your build.