WSL 初体验
WSL Linux 子系统体验原生 Docker,真香!
Windows 的 linux 子系统出来挺长时间了,你体验过了吗?
今天就带你折腾一下吧,毕竟想甩掉超占用硬件资源的大块头VM,比如VMware
本文献给爱折腾的你,折腾吧,后浪!
简单说下这篇文章的重点:
WSL 是 Windows Subsystem for Linux 的缩写,意思是 linux 版的 window 子系统。
引用自:微软官网 https://docs.microsoft.com/zh-cn/windows/wsl/about
The Windows Subsystem for Linux lets developers run a GNU/Linux environment – including most command-line tools, utilities, and applications – directly on Windows, unmodified, without the overhead of a virtual machine.
You can:
- Choose your favorite GNU/Linux distributions from the Microsoft Store.
- Run common command-line tools such as
grep,sed,awk, or other ELF-64 binaries.- Run Bash shell scripts and GNU/Linux command-line applications including:
- Tools: vim, emacs, tmux *Languages: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, etc. *Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Install additional software using own GNU/Linux distribution package manager.
- Invoke Windows applications using a Unix-like command-line shell.
- Invoke GNU/Linux applications on Windows
简单的说就是,Linux 的 Windows 子系统让开发人员无需虚拟机就可以直接在 Windows 上运行 Linux 环境,包括大多数命令行工具、程序和应用。
使用 WSL 的好处是:
备注:其实我挺喜欢虚拟机的,毕竟是模拟了硬件,比较成熟,稳定。
使用管理员权限的 Shell 才能安装 WSL。
按 Win+X, 找到 Windows PowerShell (管理员),并复制执行命令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上命令会激活 WSL 服务,然后需要重启系统
重启之后,Win + R,输入 appwiz.cpl,左上角找到“启动或关闭 Windows 功能”,会看到这个选项处于选中状态。
其实吧,上面的命令就相当于手动去勾选这个功能。
直接命令执行效率可能更高些。
在 Windows 应用商店搜索 ubuntu ,选择自己喜欢的版本,安装即可。
这里我选择的是 Ubuntu 20.04 LTS,之后的所有内容也是基于 WSL Ubuntu 编写。
下载,安装之后,第一次打开会初始化一会
然后设置个用户名,密码
到这里,其实咱们的 WSL 就安装好了。
接下来我们让它更好用吧!
Debian / Ubuntu 的官方源在国内访问很慢,咱们更换为清华大学 TUNA 的软件源镜像
PS:也可以用阿里云的镜像,我体验了没那么快(可能我姿势不对),就不推荐了。
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vim /etc/apt/sources.list
注意:这里是Ubuntu 20.04 LTS的,
如果是其他版本的ubuntu,自行访问[ 清华大学开源软件镜像站]去查找对应版本的镜像配置
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
$ sudo apt-get update
$ sudo apt-get upgrade
# 更新内容稍多,差不多几分钟,玩会手机吧。。。
咱们用惯了 类似 xshell ,SecureCRT 这种 SSH 工具连接 Linux,所以顺便把 SSH 功能打通吧,用的顺手,毕竟 PowerShell 用的不是太方便!
WSL 上的 SSH 服务器没有自动配置,需要手动重新安装,首先可以运行以下命令来检查
$ sudo service ssh stop
$ sudo /usr/sbin/sshd -d
如果输出信息包括以上信息,即找不到 key,重新安装 openssh-server 就可以解决问题
$ sudo apt purge openssh-server
$ sudo apt install openssh-server
然后需要配置 /etc/ssh/sshd_config,用 sudo 权限运行 vim 修改如下三个关键字
记得删除 #
Port 22
# 这两行允许了 root 账户和密码登录
PermitRootLogin yes
PasswordAuthentication yes
然后记得重启 ssh 服务
$ sudo service ssh restart
$ sudo service ssh status
如果需要用密码登录 root 账户,还需要设置密码
$ sudo passwd root
然后就可以使用 SSH 工具进行连接啦,本地直接 localhost 即可
OK,到此,咱们的 WSL 已经配置完毕。
尽情体验,安装 Nginx,Redis,MySQL … 折腾吧后浪!
这就完了???
对,差不多就完了。
以上内容就是 WSL 安装的全部内容。
去年Build大会,WSL2 正式推出。
WSL2 附带了一个真实的 Linux 4.19 内核,能够带来完整的系统调用兼容性,并且能够直接借助自动更新进行升级维护,无需更新整个Windows Linux的子系统。
同时,WSL2将比第一代的WSL1版本运行速度更快,提升了文件系统的I/O性能和与Linux的兼容性,且可本机直接运行 Docker 容器等(这点我喜欢,嘿嘿)。
那么咱们来查看一下我们上面安装的 WSL 版本,
执行命令 wsl -l -v,如果是这个结果,那么恭喜你呀,WSL 1!
什么?我的结果不是这样???怎么我执行命令控制台提示什么无效的命令选项????
类似下面这样的结果,没事,我知道你会这样,毕竟我是一步步爬着过来的,跟我一起继续往下看。
那么,咱们接下来说,WSL2 使用是有门槛的。
你的系统,需要是满足版本的内部版本,强调一下内部版本,其实就是预览(不稳定)版本。
所以,下面要不要升级到 WSL2,有两方面考虑,
如果满足不了,就折腾 WSL 1 也挺好,最起码体验一把 windows 的进步。
步骤就不写了
百度找一篇给你【Windows】WIN10如何获取内部预览版本
**注意:**不是你填个信息申请一下立马就可以用到内部预览版了,要等 windows 推送给你,我大概等了三四天,发现有更新了,然后更新后再执行 wsl -l -v,就正常了。
更新后,主界面,右下角,会有一些内部预览版的标识。。。
准备好了吗?下面咱们开始更新到 WSL2 吧,跟我一起不停的重启电脑。。。
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
在 Powershell 中运行以下命令,将 WSL 2 设置为默认版本:
# 1.WSL 提供了版本转换工具,将 wsl1 转为 wsl2,
# 注意转换时间可能较长,耐心等待,如果时间太久没反应,时不时按下 Enter 看看有没有更新
wsl --set-version Ubuntu-20.04 2
# 2.将 WSL2 设置为默认版本
wsl --set-default-version 2
现在我们运行wsl -l -v,看到 VERSION 已经是 2 了!
再次恭喜,我们已经成功将 WSL 1 升级为 WSL 2 了!!!
一个真正的 Linux 内核的系统已经在你的 Windows 里了!
其实我升级WSL 2 的目的,是想体验原版的 Docker 的,哈哈,来吧,既然都跟到这里了,就开始吧!
$ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
http://mirror.azure.cn/help/docker-engine.html
$ sudo service docker start
$ sudo docker version
你说你装好了,倒是跑个应用看看呀?
好吧,
像 Docker 官网的安装步骤一样,也会有这么一步,通过运行 hello-world 映像来验证 Docker Engine 是否已正确安装。
$ sudo docker run hello-world
我成功了,你呢?
感兴趣可以跟下来实操哦,毕竟我是一点点坑爬上来的才有这篇文章,为了复原真实步骤,装了两次 WSL。
只点赞或收藏等于学会?不存在的,实操一下吧!