WSL: docker: command not found inside a WSL distro
Docker Desktop injects its CLI into WSL distributions only when integration is enabled for that specific distro. A newly created distro does not get it automatically.
Quick fix
Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.
# Windows: Docker Desktop -> Settings -> Resources -> WSL Integration
# enable the specific distribution, then Apply & Restart
# Verify from inside WSL
wsl -l -v # (run in PowerShell) distro must be version 2
docker context ls
docker version
# If the distro is version 1, convert it
# wsl --set-version <distro> 2
How to diagnose Virtualization errors
Virtualisation errors are usually about hardware virtualisation access: either it is disabled in firmware, or another hypervisor already holds it. On Windows, Hyper-V, WSL 2, Docker Desktop, Credential Guard and memory integrity all claim the virtualisation extensions, and VirtualBox or VMware then fails with a message that mentions VT-x but not the actual conflict.
If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.
- Confirm virtualisation is enabled at the CPU level:
grep -E 'vmx|svm' /proc/cpuinfoon Linux, or the Performance tab of Task Manager on Windows. - On Windows, check what else is using the hypervisor:
bcdedit /enum | findstr hypervisorlaunchtypeand whether Hyper-V, WSL 2 or Core Isolation are enabled. - On Linux, check
/dev/kvmexists and that your user is in thekvmgroup; nested virtualisation must be enabled explicitly on cloud VMs. - Match guest additions and tools versions to the hypervisor version: mismatches cause shared folders, clipboard and display problems that look like guest OS bugs.
- For WSL, run
wsl --statusandwsl --update; most WSL 2 errors are a stale kernel or a disabled Virtual Machine Platform feature.
Tools worth reaching for
grep -E 'vmx|svm' /proc/cpuinfowsl --statusbcdedit /enumls -l /dev/kvmsystemctl status libvirtd
Authoritative references
Primary documentation for this error, worth reading before applying any fix in production.
Related Virtualization errors
- Hyper-V: Virtual switch not foundThe VM references a virtual switch that doesn't exist. The switch may have been deleted or…
- QEMU/KVM: /dev/kvm not availableKVM kernel module is not loaded or the user doesn't have permission to access /dev/kvm…
- Vagrant: Box not foundThe Vagrant box specified in the Vagrantfile has not been downloaded or the name is incorrect.
- VirtualBox: VT-x is not availableHardware virtualization (VT-x/AMD-V) is disabled in BIOS or being used by another hypervisor…
- VMware: Disk consolidation neededThe VM has orphaned snapshot delta disks that need to be merged back. Usually happens after a…
- WSL 2: Kernel update requiredWSL 2 requires a Linux kernel component update that hasn't been installed yet.
- WSL: Windows Subsystem for Linux is not installedWSL is not enabled on the Windows machine. The Windows feature needs to be installed and…
Browse other categories
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
Something missing or wrong?
This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.