本文内容:

  1. 了解WSL和WSL2;

  2. 案例:在Windows 10 上开启WSL2并安装Ubuntu;

  3. 案例:体验在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中,你可以:

  1. 在 Microsoft Store 中选择你喜欢的Linux (Ubuntu/ Debian/ SUSE 等等)。

  2. 运行常用的软件/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?

  1. WSL 2 是 WSL 中体系结构的新版本,它更改 Linux 发行版与 Windows 交互的方式。

  2.  WSL 2 的主要目标是提高文件系统性能并增加系统调用的完全兼容性。 

  3. 每个 Linux 发行版都可以作为 WSL 1 或 WSL 2 发行版运行,并可随时进行切换。 

  4. WSL 2 是底层体系结构的主要功能,它使用虚拟化技术和 Linux 内核来实现其新功能。

WSL2 和WSL 在用户层面的感知?

  1. 将 Linux 应用需要访问的文件放在 Linux 根文件系统中可以提高文件访问速度

  2. 在 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组件功能:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第1张图片

 

安装完成后,此过程可能要求重启电脑。

2. 在windows app 商店  安装Ubuntu 18.04

 

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第2张图片

安装完成第一启动提示创建登录用户名和密码:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第3张图片

 

3. 切换到WSL2

 

在命令提示符中输入 wsl -l, 此处-l 是”list“的简称,不要输入成其他字符:

可以查看当前已经安装的linux 子系统

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第4张图片

输入 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即可。

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第5张图片 

2. 在命令提示符中 输入 WSL

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第6张图片

在本例中,我们使用了Windows Terminal(一款支持 Power Shell, Azure CLI, CMD 的多页面 终端工具, 可在商店中下载)

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第7张图片

 

在Linux shell中,我们可以直接嗲用windows 系统的组件,比如输入 explorer.exe, 会打开windows 资源管理器:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第8张图片

 

也可以执行Linux 命令,比如ps:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第9张图片               

 

5. 在WSL2子系统Ubuntu中安装Docker-CE

本例中,我们使用mirror.azure.cn提供的源安装docker-ce, 当然您也可以参照docker 官网进行安装。

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第10张图片

 

点击帮助图标,使用页面的脚本进行安装:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第11张图片

 

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第12张图片

安装完成,启动docker 并查看版本:

sudo service docker start
sudo docker version

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第13张图片

 

5. 在WSL2子系统Ubuntu中使用Docker 拉取映像并运行Nginx

执行如下命令:

sudo docker pull nginx

 

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第14张图片

 

在 wsl2中的Ubuntu中启动容器:

执行如下代码:

sudo docker run --name nginx -p 9696:80 -d nginx

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第15张图片

在本地Windows中检查运行状况:

在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker_第16张图片

 

本文参考官方文档:https://docs.microsoft.com/en-us/windows/wsl/wsl2-install