本文内容:
- 了解WSL和WSL2;
- 案例:在Windows 10 上开启WSL2并安装Ubuntu;
- 案例:体验在WSL2中的Ubuntu 安装Docker 并运行 nginx;
视频讲解:
您可在作者博客观看视频:https://www.51azure.cloud/post/2020/2/7/windows-10wsl2-linux-ubuntu-docker
图文讲解:
什么是WSL?
Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。
在WSL中,你可以:
- 在 Microsoft Store 中选择你喜欢的Linux (Ubuntu/ Debian/ SUSE 等等)。
-
运行常用的软件/Bash shell脚本/docker 等。包括但不限于:
- 工具:vim、emacs、tmux
- 语言:Javascript/node.js、Ruby、Python、C/C++、 C# 和 F#、Rust、Go 等等
- 服务:sshd、MySQL、Apache、lighttpd
- 在 Windows 上调用 GNU/Linux 应用程序。
什么是WSL2?
- WSL 2 是 WSL 中体系结构的新版本,它更改 Linux 发行版与 Windows 交互的方式。
- WSL 2 的主要目标是提高文件系统性能并增加系统调用的完全兼容性。
- 每个 Linux 发行版都可以作为 WSL 1 或 WSL 2 发行版运行,并可随时进行切换。
- WSL 2 是底层体系结构的主要功能,它使用虚拟化技术和 Linux 内核来实现其新功能。
WSL2 和WSL 在用户层面的感知?
- 将 Linux 应用需要访问的文件放在 Linux 根文件系统中可以提高文件访问速度
- 在 WSL 2 预览版的初始版本中,你需要使用 IP 地址而不是 localhost 来访问网络应用程序
案例:
案例:在Windows 10 上开启WSL2并安装Ubuntu;
WSL 2 仅适用于 Windows 10 版本18917或更高版本
管理员权限在power shell中执行如下命令:
1. 执行Power Shll命令或通过添加删除windows组件开启WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
或者:
使用添加删除windows组件功能:
安装完成后,此过程可能要求重启电脑。
2. 在windows app 商店 安装Ubuntu 18.04
安装完成第一启动提示创建登录用户名和密码:
3. 切换到WSL2
在命令提示符中输入 wsl -l, 此处-l 是”list“的简称,不要输入成其他字符:
可以查看当前已经安装的linux 子系统
输入 wsl --set-version Ubuntu-18.04 2 可以切换到WSL2, 注意,其中的 Ubuntu-18.04 为你需要切换版本的Linux子系统。
wsl --set-version Ubuntu-18.04 2
可以通过如下命令查看当前的版本:
wsl -l -v
可以使用如下命令在以后安装 Linux 的时候默认启用 WSL2:
wsl --set-default-version 2
4. 使用WSL2中的Linux Ubuntu18.014
之后,有两种启动Ubuntu的方式:
1.可以通过开始菜单 像运行本地程序一样运行Ubuntu ,直接运行开始菜单里的 Ubuntu 18.04 LTS即可。
2. 在命令提示符中 输入 WSL
在本例中,我们使用了Windows Terminal(一款支持 Power Shell, Azure CLI, CMD 的多页面 终端工具, 可在商店中下载)
在Linux shell中,我们可以直接嗲用windows 系统的组件,比如输入 explorer.exe, 会打开windows 资源管理器:
也可以执行Linux 命令,比如ps:
5. 在WSL2子系统Ubuntu中安装Docker-CE
本例中,我们使用mirror.azure.cn提供的源安装docker-ce, 当然您也可以参照docker 官网进行安装。
点击帮助图标,使用页面的脚本进行安装:
安装完成,启动docker 并查看版本:
sudo service docker start
sudo docker version
5. 在WSL2子系统Ubuntu中使用Docker 拉取映像并运行Nginx
执行如下命令:
sudo docker pull nginx
在 wsl2中的Ubuntu中启动容器:
执行如下代码:
sudo docker run --name nginx -p 9696:80 -d nginx
在本地Windows中检查运行状况:
本文参考官方文档:https://docs.microsoft.com/en-us/windows/wsl/wsl2-install