栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

从Windows的Docker Desktop转到Windows11+WSL

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从Windows的Docker Desktop转到Windows11+WSL

文章目录
  • 导读
  • 先说说安装WSL
    • 添加程序
    • 很细节的地方1:以旧换新的同学不需要太多操作
    • 很细节的操作2:重装系统的同学直接使用下面的命令
    • 很细节的操作3:内核升级或更新
    • 开启虚拟化
    • 安装子系统
  • 如果是Windows的Docker Desktop?
    • 鸡肋的地方
    • 有没有解决办法?
    • 有没有替代品?
  • 如果是WSL1或者WSL2?

导读

Windows11的wsl2真香,是一个优秀的环境容器,还是一个Linux入门体验系统。

先说说安装WSL 添加程序

也就是在控制面板的程序分类里面找到启用或关闭Windows功能。

很细节的地方1:以旧换新的同学不需要太多操作

如果你在Windows10里面已经体验过Docker Desktop或者wsl,那么你的Hyper-V是已经开启的。

如果在此基础上,你是直接通过Windows Update Assistant升级的话,是不需要多选择什么的,只需要开启适用于Linux的Windows子系统功能就好了。

很细节的操作2:重装系统的同学直接使用下面的命令

但如果你是通过网上各种各样的方法直接暴力安装的Windows11,那么就得重新选择。如果你之前并没有开启Hyper-V,或者说你使用的是家庭中文版,没有这个选项,那就没办法选择了。

所以,干脆放弃选择,我全都要。

直接将下面的代码保存为hyper.cmd,使用管理员权限运行。

@echo off
pushd "%~dp0"
dir /b %SystemRoot%servicingPackages*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
pause

既然都已经用了,那就再加点别的,我们把Windows本地安全策略开了吧,反正里面各种配置也需要修改的。同样的,将下面的代码保存为gpedit.cmd,使用管理员权限运行。

@echo off
pushd "%~dp0"
dir /b C:WindowsservicingPackagesMicrosoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:WindowsservicingPackagesMicrosoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:WindowsservicingPackages%%i"
pause

基本上需要开启的就全部开启了。

很细节的操作3:内核升级或更新

点击这里跳转到下载地址,大致上长这样:

可以看到,最新的版本是 5.10.60.1 5.10.60.1 5.10.60.1。

如果说你已经有了wsl,只需要打开终端,执行这条语句:

wsl --update

要注意的是,如果不使用管理员身份打开终端,将会提示你请求的操作需要提升,所以还是加一个管理员身份吧。

如果成功了,就会这样提示你:

开启虚拟化

对于一些刚刚升级Windows11的小伙伴,可能还来不及修改BIOS。不过我们可以先看看一些必要的东西:

先打开任务管理器(Windows11是使用Ctrl+Shift+Esc),在性能选项栏中会有一个虚拟化技术的标记,让我们看看打开没有。

对于程序员和游戏爱好者来说,应该是早就开启了。没开启的话就得想办法进去BIOS看看了。

这还只是硬件上开启了虚拟化而已,实际上还是会有报错,说什么,

请启用虚拟机平台 Windows 功能并确保在 BIOS 中启动虚拟化。

有关信息,请访问 https://aka.ms/wsl2-install

已退出进程,代码为……

倒也不是Windows11的BUG,只是单纯的软件上还需要进行设置。这里已经有大牛给出了解决方案了。

针对这种办法就使用这行命令:

bcdedit /set hypervisorlaunchtype auto

重启之后,就没有这些问题了。

安装子系统

如果你是Windows11用户,可以直接使用命令:

wsl --set-default-version 2

以保证你所使用的将是WSL2。

以上步骤全部完成之后就可以直接去Microsoft Store里面寻找自己喜欢的版本了。在这里我选择的是Ubuntu2004版本。

图中因为我已经下载了,所以按钮变成了打开,实际上是获取。

如果你没有安装的话,点击获取,Windows11将会自动把Ubuntu安装在C盘下。由于我是整个固态 512 G 512G 512G全部当作C盘,所以不介意。

如果说各位同学需要将Ubuntu安装在非C盘位置,则需要按照微软官方给的提示进行安装,也就是在下面这个列表中选择你希望安装的Ubuntu系统的安装包:

系统名称链接
Ubuntu 20.04https://aka.ms/wslubuntu2004
Ubuntu 20.04 ARMhttps://aka.ms/wslubuntu2004arm
Ubuntu 18.04https://aka.ms/wsl-ubuntu-1804
Ubuntu 18.04 ARMhttps://aka.ms/wsl-ubuntu-1804-arm
Ubuntu 16.04https://aka.ms/wsl-ubuntu-1604
Debian GNU/Linuxhttps://aka.ms/wsl-debian-gnulinux
Kali Linuxhttps://aka.ms/wsl-kali-linux-new
SUSE Linux Enterprise Server 12https://aka.ms/wsl-sles-12
SUSE Linux Enterprise Server 15 SP2https://aka.ms/wsl-SUSELinuxEnterpriseServer15SP2
openSUSE Leap 15.2https://aka.ms/wsl-opensuseleap15-2
Fedora Remix for WSLhttps://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/

以Ubuntu2004为例,下载的将会是一个后缀名为appx的文件,就像这样:

先别急嘛。如果双击,那就直接安装在C盘了。

于是,重命名为zip文件,使用任何一种解压工具解压为文件夹,就会出现这样的文件结构:

经常装系统的同学们应该马上就意识到了,这里面有个install.tar.gz,也就对应Windows安装镜像中的install.vim,那么下面的ubuntu2004.exe也就不出意外的对应setup.exe了。

还是别急嘛,如果直接双击这个exe,直接就安装了。我们先将整个文件夹剪切到你需要安装的位置,无所谓在哪,反正就是正常的剪切与粘贴。准备好了之后,双击,就能够完美运行,并且安装位置就在你当前粘贴的地方。在当前的文件结构中,会生成一个rootfs文件夹,这就是Ubuntu2004系统中的所有文件了,点开里面会显示这些内容:

相当熟悉的文件结构,不是么?

但如果你是默认安装的,你就找不到文件位置了。我也不清楚到底安装在哪里了,总之只在侧边栏显示,就先这样:

似乎也没什么坏处。

即使你找啊找啊,最终找到的还只是这个而已:


仔细一看,是不是太大了一点?直接占了 28 G 28G 28G的存储空间。不过里面安装了一些东西,确实显得比较大。到后来也不知道到底有些啥了,只知道里面有些很大的东西。不过确实相对Winodws而言已经相当小了。

虽然说我们可以轻易地在文件资源管理器里面把一些文件看得清清楚楚的,但还是不建议你随便在Windows环境下对Linux子系统的文件进行随意的改动。

如果是Windows的Docker Desktop?

实际上,无论是Windows11还是Windows10,都能够使用Docker Desktop创建镜像并能够让Windows环境免于各种各样的安装,虽然确实能够完成完整的功能,但在一些地方还是相当鸡肋的。

鸡肋的地方

但Docker Desktop的缺点就是启动速度太慢了。

因为Docker Desktop在Windows的表现中将会因为文件映射而造成性能极低,这将会对于jupyter、npm等需要文件映射到本地磁盘的镜像将会在性能上大打折扣。于是,总是因为各种问题重启的Windows Server服务器中的Windows Docker Desktop也将会因为映射而重启速度极慢。

如果你是本地运行Docker Desktop,也将会因为Docker很长时间没有开启而干等。平常摸鱼的时候倒还好,一旦有什么紧急事件需要调度服务器中的内容,突然启动Docker Desktop,那就真的火烧眉毛了。

所以,最好最好,如果真的希望使用Docker,尽可能避免使用Docker Desktop,或者说没有办法的话最好不要使用文件映射。

有没有解决办法?

实际上是有的。

也就是,在Docker Desktop中不使用文件映射,使用VSCode进行远程连接就好了。

但是这就对于镜像有一些较高的要求,比如能够执行sudo使用管理员权限。这就对jupyter-notebook的各种镜像来说相当的不友好了。当然,你可以参照官方代码库中给定的Dockerfile文件修改添加一行passwd修改密码就好了,对于萌新来说并不是很友好就是了。

有没有替代品?

当然就是wsl啦。

即使你是Windows10,你也可以把wsl当成一个本地万能Linux服务器。只不过你可能少一个能够直接访问wsl的终端。如果想考验自己的动手能力,那么就用ssh冲吧;如果说你希望在Windows10里面使用Windows Terminal,那就试试这款Windows Terminal Preview吧,最起码这个Preview版本还是能够一步步更新成为正式版,所以放心使用吧。

如果是WSL1或者WSL2?
  • 你可以直接从文件资源管理器中访问
  • 你可以直接用localhost访问服务
  • 你可以直接当Linux用,相当适合新手学习
  • 当你需要科学计算的时候
./Anaconda.sh
  • 当你想要安装桌面环境的时候
apt install ubuntu-desktop unity -y
  • Windows Terminal(或者preview版本)可以进去子系统直接操作,而不需要下载什么FinalSehll、putty等等,更不需要下载openssl在难看的黑框框里面用ssh远程控制,甚至都不知道错在哪。

当然啦,如果说有一些只能在Windows平台下安装的环境,比如Python爬虫中的一些相当具有个性的包,那是真的没有办法的,该安装还是得安装。

如果你只是Windows10,你可以使用VSCode在中小型项目中稍微顶一下,使用插件就好了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360878.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号