๐งฐ 1. Check your current WSL setup
Open PowerShell (Admin):
wsl -l -v
This shows existing distros.
๐ 2. Install a fresh Ubuntu (simple method)
If you just want a new clean Ubuntu:
wsl --install -d Ubuntu
๐ If Ubuntu is already installed, install a different version:
wsl --install -d Ubuntu-22.04
You can see all available distros:
wsl --list --online
๐งช 3. Create MULTIPLE Ubuntu instances (recommended for you)
Since you want:
- one for web dev (PHP/MySQL)
- one for Docker
๐ Best method = clone via export/import
๐ฆ Step 3.1: Export base Ubuntu
mkdir C:\WSL\Backups
wsl --export Ubuntu C:\WSL\Backups\ubuntu-base.tar
๐งฑ Step 3.2: Create new instances
mkdir C:\WSL\Ubuntu-Web
mkdir C:\WSL\Ubuntu-Dockerwsl --import Ubuntu-Web C:\WSL\Ubuntu-Web C:\WSL\Backups\ubuntu-base.tar
wsl --import Ubuntu-Docker C:\WSL\Ubuntu-Docker C:\WSL\Backups\ubuntu-base.tar
๐ 4. Run and switch between instances
โถ๏ธ Open a specific instance
wsl -d Ubuntu-Web
wsl -d Ubuntu-Docker
โญ Set default instance
wsl --set-default Ubuntu-Web
Now just typing:
wsl
opens that one.
๐ค 5. Create a user (IMPORTANT)
Imported distros often start as root.
Inside each instance:
adduser dev
usermod -aG sudo dev
Then run:
wsl -d Ubuntu-Web -u dev
โก 6. Useful daily commands
List distros
wsl -l -v
Shutdown everything
wsl --shutdown
Run command inside specific distro
wsl -d Ubuntu-Web -- php -v
wsl -d Ubuntu-Docker -- docker ps
๐พ Bonus: Backup any instance
wsl --export Ubuntu-Web C:\backup\ubuntu-web.tar
Restore:
wsl --import Ubuntu-Web-Restore C:\WSL\Restore C:\backup\ubuntu-web.tar
