WSL 初体验
WSL Linux 子系统体验原生 Docker,真香!
Windows 的 linux 子系统出来挺长时间了,你体验过了吗?
今天就带你折腾一下吧,毕竟想甩掉超占用硬件资源的大块头VM,比如VMware
本文献给爱折腾的你,折腾吧,后浪!
简单说下这篇文章的重点:
- 安装 WSL 的全过程
- 选择性升级到 WSL 2 的全过程
- WSL 2 中体验原生 Docker
啥是 WSL ?
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 的好处是:
- 与在虚拟机下使用 Linux 相比,WSL 占用资源更少,更加流畅;
- WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便;
- 剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL;
备注:其实我挺喜欢虚拟机的,毕竟是模拟了硬件,比较成熟,稳定。
开启WSL支持
使用管理员权限的 Shell 才能安装 WSL。
按 Win+X, 找到 Windows PowerShell (管理员),并复制执行命令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上命令会激活 WSL 服务,然后需要重启系统
重启之后,Win + R,输入 appwiz.cpl,左上角找到“启动或关闭 Windows 功能”,会看到这个选项处于选中状态。
其实吧,上面的命令就相当于手动去勾选这个功能。
直接命令执行效率可能更高些。
安装 WSL 发行版
在 Windows 应用商店搜索 ubuntu
,选择自己喜欢的版本,安装即可。
这里我选择的是 Ubuntu 20.04 LTS
,之后的所有内容也是基于 WSL Ubuntu 编写。
下载,安装之后,第一次打开会初始化一会
然后设置个用户名,密码
到这里,其实咱们的 WSL 就安装好了。
接下来我们让它更好用吧!
apt 换源
Debian / Ubuntu 的官方源在国内访问很慢,咱们更换为清华大学 TUNA 的软件源镜像
PS:也可以用阿里云的镜像,我体验了没那么快(可能我姿势不对),就不推荐了。
- 执行下面命令,备份 apt 安装源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- vim 编辑 sources.list :
$ sudo vim /etc/apt/sources.list
- 将 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
# 更新内容稍多,差不多几分钟,玩会手机吧。。。
配置SSH服务器
咱们用惯了 类似 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 安装的全部内容。
客官要体验下 WSL2 吗?
去年Build大会,WSL2 正式推出。
WSL2 附带了一个真实的 Linux 4.19 内核,能够带来完整的系统调用兼容性,并且能够直接借助自动更新进行升级维护,无需更新整个Windows Linux的子系统。
同时,WSL2将比第一代的WSL1版本运行速度更快,提升了文件系统的I/O性能和与Linux的兼容性,且可本机直接运行 Docker 容器等(这点我喜欢,嘿嘿
)。
那么咱们来查看一下我们上面安装的 WSL 版本,
执行命令 wsl -l -v
,如果是这个结果,那么恭喜你呀,WSL 1!
什么?我的结果不是这样???怎么我执行命令控制台提示什么无效的命令选项????
类似下面这样的结果,没事,我知道你会这样,毕竟我是一步步爬着过来的,跟我一起继续往下看。
那么,咱们接下来说,WSL2 使用是有门槛的。
你的系统,需要是满足版本的内部版本,强调一下内部版本,其实就是预览(不稳定)版本。
所以,下面要不要升级到 WSL2,有两方面考虑,
- 一个是你的 windows 版本能不能跟的上
- 另一个你能不能承担升级预览版本带来的风险?
如果满足不了,就折腾 WSL 1 也挺好,最起码体验一把 windows 的进步。
先升级到内部预览版本
步骤就不写了
百度找一篇给你【Windows】WIN10如何获取内部预览版本
**注意:**不是你填个信息申请一下立马就可以用到内部预览版了,要等 windows 推送给你,我大概等了三四天,发现有更新了,然后更新后再执行 wsl -l -v
,就正常了。
更新后,主界面,右下角,会有一些内部预览版的标识。。。
准备好了吗?下面咱们开始更新到 WSL2 吧,跟我一起不停的重启电脑。。。
更新到 WSL 2
启用“虚拟机平台”可选组件
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
将 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 里了!
在WSL2子系统Ubuntu中安装Docker-CE
其实我升级WSL 2 的目的,是想体验原版的 Docker 的,哈哈,来吧,既然都跟到这里了,就开始吧!
安装 Docker-CE
$ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
http://mirror.azure.cn/help/docker-engine.html
启动Docker,查看 Docker 版本
$ sudo service docker start
$ sudo docker version
跑个应用?
你说你装好了,倒是跑个应用看看呀?
好吧,
像 Docker 官网的安装步骤一样,也会有这么一步,通过运行 hello-world 映像来验证 Docker Engine 是否已正确安装。
$ sudo docker run hello-world
我成功了,你呢?
感兴趣可以跟下来实操哦,毕竟我是一点点坑爬上来的才有这篇文章,为了复原真实步骤,装了两次 WSL。
只点赞或收藏等于学会?不存在的,实操一下吧!