最详尽教程完整介绍

您所在的位置:网站首页 wsl2和虚拟机区别 最详尽教程完整介绍

最详尽教程完整介绍

2023-10-13 02:21| 来源: 网络整理| 查看: 265

安装 WSL 1. 开启WSL

必须启用“适用于 Linux 的 Windows 子系统”可选功能并重启,然后才能在 Windows 上运行 Linux 发行版。

以管理员运行Powershell(开启WSL,如已开启可跳过)

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform --启用“虚拟机平台”可选组件

image.png

2. 安装WSL Linux发行版本

image.png

比较 WSL 1 和 WSL 2

WSL 1 和 WSL 2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。 image.png

WSL2相比WSL1来说可以完美支持Docker。与WSL1的模拟Linux API不同的是,WSL2采用在Hyper-V虚拟机中运行的方案。可以说WSL2和原汁原味的Linux已经十分接近

WSL1 没有 Linux 内核,不支持 docker;WSL2 是有 Linux 内核的轻量化虚拟机,支持 docker。 目前 docker 已经针对 WSL2 做了适配,安装时检测到 WSL2 就会启用 WSL2 后端,不仅能同时在 Windows 和 WSL 下操作 docker 服务器,还比以前的 docker on Windows 启动更快、占用资源更少。

image.png

WSL1

不支持Docker的守护进程,但您可以使用Docker CLI连接到通过Docker for Windows或您创建的任何其他VM 运行的远程Docker守护进程

不能完全兼容systemctl, systemd等等,IO速度相对原生Linux也是大打折扣,在编译和解压方面可以很深体会到。毕竟不是真正的Linux,而是挂在Windows NT内核之上的仿Linux 系统 image.png

WSL1与Docker 集成

由于WSL 还不是原生的Linux,所以需要借助Docker for Windows来实现Docker(Docker for Windows 是基于Hyper-V 技术) image.png image.png

另外一种方式是,在WSL1中安装docker 客户端,连接 docker server, 来解决在WSL1上使用docker 的问题。(PS: Win10 的Linux 子系统是装不了 docker (服务端)的,但是可以安装客户端)

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common curl -fsSL [https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg](https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg) | sudo apt-key add - sudo apt remove gpg sudo apt install gnupg1 sudo apt install software-properties-common sudo add-apt-repository "deb [arch=amd64] [https://mirrors.aliyun.com/docker-ce/linux/ubuntu](https://mirrors.aliyun.com/docker-ce/linux/ubuntu) $(lsb_release -cs) stable" sudo apt-get -y update sudo apt-get -y install docker-ce echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc

image.png

参考

Running Docker containers on Bash on Windows来自 Setting Up Docker for Windows and WSL to Work Flawlessly来自 WSL2

WSL2 是第二代 WSL,包含在2020年5月正式发布 Windows 10 v2004 版中。相比第一代,新的 WSL2 重新设计了架构,使用真正的 Linux 内核,几乎具有 Linux 的所有完整功能。启用WSL2的 Linux 系统启动时间非常快,内存占用很少,并且,WSL 2 还可以直接原生运行 Docker,VS Code 编辑器还有 Remote-WSL 插件,相对于完整的 linux 虚拟机只是不支持 systemctl、systemd,不能直接运行图形桌面。Windows 也越来越向虚拟平台靠拢,Windows NT 内核和 Linux 内核都是运行在虚拟平台之上的,是平级的

image.png

We will replace the Hyper-V VM we currently use by a WSL 2 integration package. This package will provide the same features as the current Docker Desktop VM: Kubernetes 1-click setup, automatic updates, transparent HTTP proxy configuration, access to the daemon from Windows, transparent bind mounts of Windows files, and more.

image.png

升级到WSL2

如果发现VERSION为1,说明Ubuntu运行在WSL1下,可以升级到 WSL2。同样,WSL2也可以降级到WSL1。 wsl -l -v #查看已安装Linux版本和名称,完整命令格式:wsl --list --verbose image.png **WSL2需要Windows build 18917 更新, **WSL不需要. 但是最好首先将操作系统更新到需要的版本, 而不是先安装WSL再更新 WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel

具体步骤参考 : https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能 image.png wsl --set-version Ubuntu 2 #升级到WSL2,其中 Ubuntu 是已经安装的Linux名称,命令格式:wsl --set-version image.png

启用WSL后,通过 \wsl$ 可以访问WSL文件 image.png

WSL2 与docker 集成

最初的WSL是在Windows之上模拟Linux内核,但是Windows和Linux之间存在如此基本的差异,以至于某些事情不可能以与本机Linux相同的行为实现,这意味着不可能直接在 WSL中运行Docker Engine和Kubernetes 在WSL1中,Docker Desktop通过Hyper-V虚拟机去运行docker环境的 image.png

升级到WSL2 之后, Docker Desktop 可以直接用 WSL2,直接运行在Linux 内核上了 image.png

通过如下设置,Docker Desktop就和WSL2分发版本进行了集成,无需在WSL中安装docker; 当然,也可以选择不与Docker Desktop集成,直接在WSL 中运行docker 容器。

image.png

image.png 启用WSL后,docker运行数据都在WSL发行版中,文件位置都只能由WSL管理

安装docker后,docker会自动创建2个发行版:

docker-desktop docker-desktop-data

image.png image.png

WSL发行版默认都是安装在C盘,在%LOCALAPPDATA%/Docker/wsl目录 docker的运行数据、镜像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx中

通过 WSL 2 集成,您仍然可以体验到与 Windows 的无缝集成,但在 WSL 中运行的 Linux 程序也可以执行相同的操作。这对于从事面向 Linux 环境的项目或为 Linux 量身定制的构建过程的开发人员产生了巨大影响。不再需要维护 Linux 和 Windows 构建脚本!例如,Docker 的开发人员现在可以在 Windows 上的 Linux Docker 守护程序上工作,使用与 Linux 计算机上的开发人员相同的工具和脚本集:

注:WSL2 Docker最爽的地方是和宿主机Win10共享network,我们在宿主机Win10使用localhost加端口号就可以访问Docker中对应container中的服务,十分方便 image.png

WSL使用

wsl #启动 wsl --shutdown #关闭所有正在运行的 Linux 和 WSL 2

启动 WSL2 之后,会在任务管理器中发现多了一个 虚拟机工作线程 image.png

访问wsl 文件 image.png

卸载发行版 有时候某个Linux发行版不再使用,或者是环境被搞坏需要重装,这时候我们可以卸载掉这个Linux发行版。方法如下。

首先使用:wslconfig /l 命令查看系统内安装的Linux发行版。 然后使用:wslconfig /u 卸载掉指定的发行版Linux。


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3