当前位置: 首页 > news >正文

安装WSL2、Docker全网最最详细教程之一

一、Windows允许虚拟服务的设置

这是最底层的准备工作,相当于为 WSL2 准备好“地基”。它需要启用两个关键的 Windows 可选功能:

  • 适用于 Linux 的 Windows子系统:提供 WSL 的基础 API 和管理接口。
  • 虚拟机平台:提供 Hyper-V 虚拟化能力,让 WSL2 能在轻量级虚拟机中运行真实内核。

这两个功能必须通过管理员权限的 PowerShell 命令或在控制面板“启用或关闭 Windows 功能”界面开启,并重启电脑后才能生效。没有它们,后续所有操作都无法进行。

二、安装WSL以及wsl内核

1、一键安装wsl框架和内核(需要魔法)

正常情况下输入以下命令运行,并等待其自动完成即可。

wsl -install

一般运行后会出现下图(注意一键安装的过程中需要魔法)

但是如果上述命令运行后,在下载wsl内核的时候出现网络受限或者说下载得到的内核版本太旧,就需要进行手动安装wsl内核。a哥也在下面详细介绍了手动下载内核的方式。

2、手动下载

2.1 下载WSL的内核

附内核下载地址 ,地址里选择.msi后缀的文件进行下载,根据网速需要十几分钟到半小时不等。

下载好WSL内核之后,双击运行,然后依次点击下一步,....完成。重新打开一个新的powershell,输入命令检查内核是否安装成功。注意更新或者新安装了wsl内核后一定要用命令

wsl --shutdown 重启wsl

使用命令 wsl --version查看内核和wsl服务是否正常

2.2 下载Linux发行版(这里以Ubuntu 22.04为例)

方法一、使用命令下载

方法二、手动下载发行版安装包,然后导入。对于分发版提供两个选择:

下载链接1 (.wsl 支持日常学习、轻度开发)因为它已经内置了轻度的工具

输入命令:wsl --import <分发版名称> <安装路径> <.wsl 文件路径> --version 2

其中 <分发版名称> 是你自己命名的。<安装路径>也是自定义的,不过要在执行这个命令前在文件系统创建这个目录。

下载链接2 (rootfs,支持服务器部署、容器化、高度定制化)因为里面就是纯净的wsl环境

输入命令:wsl --import <分发版名称> <安装路径> <rootfs.tar.gz 文件路径> --version 2

其中<分发版名称> 是自己命名的。<安装路径>也是自定义的,不过要在执行这个命令前在文件系统创建这个目录。

如图,输入命令出现下面的就是正常

导入成功见下图

同时一般导入成功之后,会出现这个弹窗。

三、安装好WSL2后

1、导入成功一定要做的步骤

1.1输入 wsl -d Ubuntu22 进入系统。

1.2在 Linux 终端里输入以下命令创建用户(把 yourname 换成你想要的用户名):

a.新建用户并加入用户组里:

b.确保用户名为小写之后,按提示输入两次密码:

c.退出 WSL (exit),回到 PowerShell,执行这条命令把它设为默认登录用户:

注意的是:用户名不符合 Linux 系统默认的用户名命名规则导致的。Linux 的 adduser 命令会根据 /etc/adduser.conf 中定义的 NAME_REGEX 正则表达式来校验用户名,而用户名包含大写字母,被系统判定为无效名称。

四、安装Docker desktop

1、下载 Docker下载官网

(1)选择那个amd64的Docker desktop(电脑是x86的)

有人问我们不是在windows电脑上安装了WSL2吗,不是应该安装Linux版本?
你可以把 Docker Desktop 想象成一个“大管家”,而 WSL2 是它手下的“苦力”。
Docker Desktop (Windows版):它负责在 Windows 界面上给你提供一个可视化的操作面板(Dashboard),让你能方便地管理镜像、容器,还能自动处理网络映射(比如把容器里的端口映射到 Windows 的 localhost)。
WSL2:它负责在后台干脏活累活。Docker Desktop 安装后,会自动在你的 WSL2 里配置好环境,让容器真正跑在 Linux 内核上。

2、双击运行Docker

注意运行后应该会出现弹窗,选择 use wsl instead of hyper-v.如果没有出现也没事,因为大部分默认是支持wsl.

3、启动之后

如果之前你的wsl框架以及内核华友分发版安装成功之后,你的Dockerdesktop启动后应该会出现下面的页面。可以看见右边,是对如何部署第一个容器有简单的说明。

4、使用Docker desktop管理

如果我们想在Windows上用 Docker Desktop 管理,同时能在 WSL 的终端里使用 docker 命令。就需要点击setting(右上角齿轮图案)--->resource--->wsl integration

截止到现在,如果读者看a哥文章到这里,那么恭喜你的WSL和Dockerdesktop已经配置好了。接下来就可以去部署一个项目到docker里了。
下面是一些常见的问题以及相关解答,如果有错误的地方,还希望读者能提出便于后学者不会产生错误理解。

问题:

1、首次启动 WSL 时会提示创建用户名和密码。这个用户名密码重要吗?
这个账号会被视为该 Linux 发行版的默认管理员账户。以后您在 WSL 中执行需要管理员权限的命令(例如安装软件、修改系统配置等)时,都需要使用 sudo 命令,此时系统就会要求您输入这个密码来进行身份验证。与 Windows 账户完全独立。如果您安装了多个不同的 Linux 发行版,它们各自都有独立的用户名和密码。如果您不小心忘记了这个密码,也不用担心,可以通过 Windows 的 PowerShell 强制重置。具体步骤如下:

  1. 以管理员身份打开 PowerShell。
  2. 输入命令 wsl -u root 进入 WSL 的 root(超级管理员)模式。

输入 passwd <您的用户名>,然后根据提示输入并确认新密码即可。

2、为什么使用rootfs而不使用ISO镜像?

特性ISO 镜像WSL rootfs.tar.gz
用途虚拟机/物理机安装WSL 专用轻量系统
包含内容引导程序、内核、图形界面、驱动仅根文件系统(/bin, /etc, /usr 等)
大小3–4 GB~300 MB
是否兼容 WSL❌ 不兼容✅ 原生支持

3、如何查看是否导入分发版以及如何注销分发版本?

4、分发版是以离线包形式导入指定盘符是否还需要迁移?

不需要迁移,常见有以下两种方式,(为了空间)第一种才需要迁移:

  1. 在线安装/默认安装:如果你是用 wsl --install 或者微软商店安装的,系统会默认把文件塞进 C 盘的用户目录下(C:\Users\...\AppData\...)。那种情况才需要“导出-注销-导入”来搬家。
  2. 导入分发版的离线包:最开始是直接用了 wsl --import ... D:\WSL\...,相当于出生就在 D 盘,一步到位。

5、如果说你先是导入了一个分发版,但是后来对这个不满意,是否可以删除?

当然可以,使用命令:wsl --unregister <你的分发版名字>

其中分发版名字是使用 wsl --status命令显示出来的。

总结

以上就是作者对WSL2安装的总过程以及安装Docker desktop的全部过程,以及Docker的简单知识,如果后面读者有需要的话作者也会继续更新。

如果这篇文章对你有帮助的话,希望各位观众姥爷能够一键三连!你的点赞关注是我持续创作的动力。

http://www.jsqmd.com/news/1198042/

相关文章:

  • 晶体管开关速度优化:驱动电路与布局设计关键
  • 从零实现C++ vector:深入理解动态数组与内存管理
  • M365 Copilot故障排查:权限、连接与提示词三重根因解析
  • 海量视频搜索采集,企业客户开放免费测试!
  • 生产级Agent 全景:架构、Harness 工程、组织与人才
  • Android平板与微处理器USB通讯开发指南
  • 【STM32+ESP8266连接腾讯云物联网开发平台 1】从零搭建:平台配置与AT固件一键烧录实战
  • Python办公自动化从入门到精通-1
  • GPT-5.6 Sol与Fable 5:AI编程助手技术对比与实战应用指南
  • C++手搓卷积运算:从原理到高效实现与性能优化
  • BioClaw Windows部署全避坑指南:Node.js、Python与系统底层适配实战
  • 3个颠覆性功能重塑你的免费音乐体验:MusicFree插件生态完全指南
  • 基于AT89C51的8路数据采集系统设计与实现
  • Edge插件开发避坑指南:Manifest V3、Service Worker与打包发布全解析
  • 编译原理核心脉络梳理:从哈工大视频到实践认知
  • 从实验台到设计台:Tomasulo算法与ROB如何重塑现代CPU的乱序执行引擎
  • 长沙 3D 动画宣传片定制服务商推荐
  • Debian服务器部署1Panel:专治Docker困难户的运维方案
  • AR Foundation图像追踪与坐标转换实战:从原理到精准交互实现
  • Na₂Fe₂P₂O₇SO₄双阴离子协同设计:聚阴离子钠电正极的新范式
  • 射频电路电源设计:13条黄金规则与实战技巧
  • 从面试官视角拆解多线程:为什么这些“八股文”能筛掉90%的候选人?
  • C++实现AI算法:从线性回归到性能优化与工程化实践
  • C++ HashMap底层实现详解:从哈希函数到动态扩容
  • AI-Shoujo HF Patch:社区整合补丁如何解决模组管理与游戏稳定性难题
  • 波形分析--SPI时序故障排查与ESAM复位信息解析实战
  • GitHub Copilot CLI:终端原生智能协作者实战指南
  • OpenClaw 配置分层:三层架构 + ${VAR:default} 变量解析完整详解
  • 板块轮动全景深度解析:为什么轮、轮到哪、怎么接力?
  • 实战演练:用等价类划分法为城市电话号码设计测试用例