wsl2 还不稳定,存在许多bug, 可以在:https://github.com/microsoft/WSL 进行提交
安装
win10 更新之 Windows 10 build 18917 Insider 版本,就可以使用 wsl2。
-
安装方式一,以管理员身份运行powershell,执行命令,然后重启电脑
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
-
方式二
控制面板— 程序和功能— 启用或关闭 windows功能— 适用于Linux的Windows子系统— 打 √
— 重启电脑
wsl 命令
-
查看帮助
wsl -h
-
设置默认版本,选择linux默认运行在 wsl1 还是 wsl2
wsl --set-default-version 2
-
设置 某个linux发行版运行版本,需要先安装好 linux 后才可以转换
wsl --set-version <distro> 2
示例:
wsl --set-version ubuntu 1
-
ubuntu 版本转换
wsl --set-version ubuntu 2
-
查看安装的 linux
wsl --list --verbose
或
wsl -l -v
-
停止所用运行Linux
wsl --shutdown
-
启动虚拟机
- 直接输入 系统名称:如 Ubuntu 、kali等 直接进入
-
或使用 wsl命令,例如:
wsl -d ubuntu
安装linux
- 打开 应用商店,搜索 wsl ,商店提供 ,
ubuntu
,SUSE Linux Enterprise Server 12
,Debian
,Kail Linux
- 点击安装
安装 ubuntu
-
在应用商店,搜索 Ubuntu ,进行安装
-
设置用户名密码
-
设置 root密码
sudo passwd root
-
安装docker,和正常ubuntu安装docker一样
方式一:
sudo apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
-
启动docker
sudo service docker start
-
运行容器测试
sudo docker run hello-world
-
docker 以普通用户执行
sudo usermod -aG docker your-user sudo service docker restart
-
windows 网络访问 linux
-
运行 nginx容器
docker run --name nginx -d -p 8888:80 nginx
-
linux内部访问
curl http://127.0.0.1:8888
-
windows访问
-
查看 linuxIp
ip addr
查看 eth0 ip,这里是
192.168.161.203
每个机器的都不一样-
访问:打开浏览器,访问
http://192.168.161.203:8888
得到nginx页面 -
访问
http://127.0.0.1:8888
得不到结果,拒绝访问
-
-
ubuntu 重启系统
-
在Linux 执行 重启或关机命令,会报错
ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$ sudo reboot System has not been booted with systemd as init system (PID 1). Can't operate. Failed to talk to init daemon. ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$ sudo shutdown System has not been booted with systemd as init system (PID 1). Can't operate. ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$
-
需要执行
wsl
命令 -
终止所有运行的linux
wsl --shutdown
-
终止指定的linux
wsl --terminate <distro> # 或 wsl -t <distro>
示例:
-
查看 linux列表
wsl -l
-
关闭 ubutnu ,关闭没有任何显示
wsl -t Ubuntu
-
-
启动 ubuntu
- 或执行
wsl -d ubuntu
- 或者输入 ubuntu
- 或执行
-
将ubuntu导出
-
导出类似,docker的导出,方便移动等
-
导出到d盘:
wsl --export Ubuntu D:/ubuntu.tar
很快就会完成,本次实例 tar大小 1.15G,进行压缩 ,大小为 414M
-
导入
wsl --import Ubuntu D:/ubuntu_dir D:/ubuntu.tar
-
–import :导入
-
ubuntu: 导入名称,可自定义
-
D:/ubuntu_dir : 导入到那个目录,导入成功,有 ext4.vhdx 文件
-
D:/ubuntu.tar: 源文件
-
报错
参考的对象类型不支持尝试的操作
netsh winsock reset
docker for wsl2
参考:https://docs.docker.com/docker-for-windows/wsl-tech-preview/
docker windows 开发版可以使用内置 WSL2功能, 优点: * 通过 WSL2
使用其自带 ubuntu系统来运行docker。不占用系统应用商店的Ubuntu * 重启速度贼快。
不过: * 安装Windows 10 Insider Preview内部版本19041或更高版本。 * 使用代理依然 很有可能会报 参考的对象类型不支持尝试的操作
错误。方法参考上面。