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

Windows 10/11安装WSL、Ubuntu、Docker Desktop

WSL,Windows Subsystem for Linux,是微软开发的轻量级虚拟机环境,允许用户在 Windows上运行完整的Linux内核和用户空间,适用于Windows的Linux子系统。能实现:

  • 运行原生的Linux命令和程序(如apt,gcc,make等);
  • 拥有独立的文件系统;
  • 支持网络、进程等Linux功能。

另有一说,可在WSL上模拟出有限的Linux环境,而不是Linux发行版。

安装

安装WSL需要有一些前置操作。

前置操作

打开控制面板,找到【程序和功能】,点击左侧的【启用或关闭Windows功能】,勾选【适用于Linux的Windows子系统】,需要同时勾选【虚拟机平台】(下面截图未勾选):

需要重启Windows电脑生效。

Docker Desktop

安装WSL有两种方式:

  • 通过Docker Desktop:实际上还是通过下面的命令行;
  • 通过命令行:执行任意wsl命令行可触发WSL安装。

下载并安装Docker Desktop时会出现如下提示:

或者:

正常情况下,用管理员身份启动Docker Desktop时会触发WSL的安装或升级:

也可手动输入命令行:

安装WSL系统需要有较好的网络环境(代理),否则下载速度会非常慢。

安装成功后,输入命令wsl -v查看WSL版本号

输入命令wsl --listwsl --list --verbose查看子系统列表:

注意到在NAME前面有个*,VERSION为2。

下面会继续论述。

WSL和Docker Desktop

Docker Desktop是Docker官方为Windows和macOS提供的一个桌面应用程序,集成:

  • Docker Engine:引擎
  • Docker CLI:命令行工具
  • Kubernetes:可选
  • 资源管理器集成
  • 与WSL2的深度集成

新版Docker Desktop(v2.3+)在Windows上强烈依赖WSL2,官方推荐并默认使用WSL2作为后端运行环境。

功能使用WSL2的优势
完整的Linux内核支持Docker 需要Linux特性(如cgroups、namespaces)
更好的性能相比Hyper-V虚拟机更轻量、更快
文件系统互通可无缝访问Windows文件系统
与Ubuntu等发行版共存可在多个终端中使用Docker CLI

脱离WSL2,能否在Windows上安装Docker Desktop?

从2020年以后发布的Docker Desktop版本来看,已经无法完全绕过WSL2来运行完整功能的Docker Desktop。

旧版本,如Windows 10企业版/专业版,可使用Hyper-V + Windows Containers来运行Docker Desktop,但:

  • 不支持Linux容器(除非切换容器类型)
  • 不适合开发者日常使用
  • 很多功能受限(如挂载本地目录、构建镜像等)

参考:Windows10系统Docker for Windows与VMWare关于Hyper-V问题。

Ubuntu

上面通过Docker Desktop方式安装WSL,并启动一个docker-desktopLinux子系统。

相信很多接触Linux的同学都是从Ubuntu开始的。WSL能不能安装Ubuntu系统呢?

当然可以,输入命令wsl --install Ubuntu安装Ubuntu系统:

报错原因是因为开了代理,就比如此时无法打开Microsoft Store一样。

关掉代理:

反复重试还是失败的解决方法:手动下载离线安装包地址,得到Ubuntu2204-221101.AppxBundle文件。

安装方法:

  • 双击该文件,系统会自动调用应用安装程序完成安装;
  • 通过PowerShell命令:Add-AppxPackage -Path "C:\Users\johnny\Downloads\Ubuntu2204-221101.AppxBundle"

本文使用第二种方式,上面的命令执行成功后,在开始菜单中找到Ubuntu并点击:

忽略第二个弹窗里的报错,出现如下提示:

首次运行会提示输入用户名和密码,完成初始化配置。

用户名密码必填,直接回车无效:

正常情况下,可通过命令行安装:

安装成功,输入命令wsl --list --verbose

在CMD下新增窗口的效果:

WSL1和WSL2

Windows1903版本以及以后还支持WSL2。WSL2基于Windows Hyper-V虚拟化技术,启用更全面的虚拟化功能。两者比较:WSL2和WSL1,两者不兼容。WSL2与大多数其他虚拟机产品在开启虚拟化加速技术诸如Intel TV-x/AMD-V时是冲突的。

特性WSL1WSL2
内核支持模拟Linux系统调用(翻译)完整的Linux内核(基于轻量级虚拟机)
文件系统互通支持Windows与Linux文件系统互相访问访问Windows文件慢,Linux文件快
网络与Windows共享IP地址有自己的独立IP地址
GUI应用支持默认不支持(需额外配置)可通过设置支持GUI应用
启动速度稍慢(需要启动虚拟机)
硬件支持不支持USB、GPU直接访问更好地支持GPU、USB(需配合驱动)
优点文件系统可以无缝互操作;性能高,启动快支持完整的Linux内核功能,如docker,firewalld;更接近真实Linux环境;支持GUI、网络服务等高级功能
缺点不支持Linux内核特性(如systemd,iptables,mount等);不适合运行需要完整Linux内核的服务或容器,如Docker与Windows文件系统交互较慢;有自己的IP地址,需注意防火墙设置;启动稍慢
适合场景开发工具、脚本运行等需要完整Linux环境(如Docker、内核功能)

WSL1,模拟方式运行Linux用户态程序,不使用真正的Linux内核,将Linux系统调用翻译成Windows能理解的NT API。

WSL2,使用Hyper-V技术运行一个完整的Linux内核(轻量级虚拟机),对用户透明,所有Linux系统调用都直接运行在Linux内核中。

切换WSL版本

可为每个发行版单独设置使用的WSL版本:

wsl --set-version<DistributionName>2wsl --set-version<DistributionName>1wsl --set-version Ubuntu2wsl --set-version Debian1

比如

遇到的问题,也就是上面看到的,设置为WSL1之后,Docker Desktop自动停止:

因此,对于Docker Desktop,不能使用WSL 1版本。

切换回去:

还是Stopped状态:

直接执行wsl命令即可启动Docker Desktop(启动默认发行版):

使用

WSL安装或升级成功后的效果:

有很多概要性介绍知识。

跨文件系统工作

包括:

  • 从Linux访问Windows文件
  • 使用Windows文件资源管理器访问Linux文件
  • 从WSL启动Windows文件和程序(TODO);

GUI应用

可通过本机Windows交互操作(例如Alt-Tab、开始菜单启动、任务栏固定以及剪切和粘贴支持)使用基于图形的Linux应用程序。

可通过sudo apt install <TheApp Narme>在Ubuntu中尝试安装的部分应用列表:

  • gedit:基本文本编辑器
  • audacity:录制和编辑音频文件
  • blender:制作3D动画和可视化效果
  • gimp:编辑照片
  • nautilus:Linux文件资源管理器
  • vlc:视频播放器

GPU加速

在WSL中运行的Linux二进制文件可自动使用Windows中的GPL来加快性能。

网络集成

可以跨Windows和Linux操作系统轻松访问网络应用。

  • 从Windows访问Linux网络应用
    如果要在Linux分发版中生成网络应用,则可使用localhost从Windows应用(如Chrome浏览器)访问它。
  • 镜像模式网络
    WSL还包括一种称为镜像模式的新网络模式,添加IPv6支持等高级功能,并且能够访问局域网中的网络应用程序。

发行版管理

WSL是试用不同Linux发行版的好方法。
列出可安装的WSL发行版命令:wsl.exe -l -o
安装命名的WSL发行版命令:wsl.exe --install <DistroName>
列出可用的WSL发行版命令:wsl.exe -I

Docker Desktop集成

上面多次提及。

VS Code集成

可直接从VSCode使用WSL作为全时开发环境。

安装VSCode后,可从Windows终端安装远程WSL扩展:code -install-extension_ms-vscode-remote.remote-wsl

实战

读写文件

分两种场景:

  • 在WSL中访问本地Windows;
  • 在本地Windows下访问WSL系统。

在WSL2中,Windows的文件系统会自动挂载到/mnt目录下,比如Windows下的C盘,对应路径为/mnt/c(注意是小写!注意是小写!!)。

在Windows中访问Ubuntu文件,打开(文件)资源管理器,输入\\wsl$回车:

双击操作,和在Windows下一样:

设置永久挂载或软链接

如果你经常需要访问某个 Windows 文件夹,可以创建一个符号链接(软链接)到你的 home 目录:
ln -s /mnt/c/Users/YourName/Documents ~/win_docs
之后就可以用~/win_docs来快速访问 Windows 中的文档目录。

在 Docker 中挂载 Windows 本地目录(与 WSL2 配合)
当你使用 Docker Desktop 时,它会自动处理 WSL2 和 Windows 之间的文件系统桥接。

比如你在 Docker 命令中这样写:docker run -v /mnt/c/Users/YourName/mycode:/app myimage
等价于把 Windows 的 C:\Users\YourName\mycode 挂载到了容器的 /app 目录。

注意事项:

  • 不要在/mnt路径下运行git、npm、或编译工具(如make),因为性能差且可能导致数据损坏;
  • 避免在Windows资源管理器中直接编辑WSL2的Linux文件系统中的文件(如/home/xxx),这可能导致权限问题或文件损坏;
  • 推荐将项目放在Linux文件系统中(如/home/me),仅通过/mnt挂载做临时拷贝或共享。

告警

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

Docker


根据上面的提示,让我去Docker Desktop设置下,但是找了一圈还是没有找到配置入口。还是得看文档,执行命令wsl --set-default Ubuntu

再次在WSL里的Ubuntu系统执行docker,可正常使用。

参考

  • 官方文档
  • GPT
http://www.gsyq.cn/news/1445092.html

相关文章:

  • 华为OD机试真题 新系统 2026-05-24 JavaGoC 实现【简单表达式计算】
  • ESP8266固件烧录进阶:手把手教你用sscom5串口工具验证程序运行状态
  • 体素计算:三维空间智能单元的设计原理与游戏开发实践
  • 企业级知识库搭建(二)用 LLM 构建 Ontology 的五种流派
  • 从‘看得见’到‘看得清’:一个真实案例带你理解ADAS摄像头分辨率与帧率如何影响夜间AEB表现
  • LLMLingua:提示词压缩技术解析与工程实践指南
  • 从ROS1到ROS2:YDLidar雷达驱动迁移实战与踩坑记录(附Ubuntu 20.04/22.04配置)
  • C#转Python第1.9篇:Python 的 dict.get 一行治好我的 TryGetValue 选择困难症
  • 解决NLP噪声难题:FuJianAscend/byt5_large_pt在TweetQA任务中的卓越表现
  • 别再手动点灯了!用STM32 HAL库+74HC595驱动数码管,解放你的GPIO口(附Proteus仿真文件)
  • TouchDevelop:零配置浏览器编程环境与可视化开发实践
  • 极端分类技术解析:从大规模标签预测到高效算法实现
  • 手把手教你用CAPL的DiagSetPrimitiveByte搞定27服务密钥填充(附完整代码)
  • 人机协同:LLM在NLP系统Bug挖掘与质量保障中的工程实践
  • 顶尖科技公司访问项目深度解析:从申请到价值转化的全攻略
  • AI爆火背后:算法、算力、数据三驾马车如何驱动智能革命?
  • Python小工具颜值UP指南:手把手教你用termcolor打造高逼格进度条和状态提示
  • .NET Gadgeteer:模块化硬件与.NET Micro Framework的快速原型开发实践
  • FPGA玩转PSRAM的RBX特性:以APS6408L为例,实现跨页访问不降速的秘诀
  • 2026大角鹿品牌背胶怎么样?大角鹿辅材是否符合国标:全方位解析大角鹿辅材实力 - 栗子测评
  • WinDiskWriter:让Mac用户轻松制作Windows启动盘的专业解决方案
  • 性能优化指南:如何为LongCat-AudioDiT选择合适的硬件和推理参数
  • 机器学习在Wi-Fi链路质量预测中的工业应用
  • 从Web到桌面:用Electron+Vue3给你的Vite项目加个‘壳‘,5分钟实现跨平台
  • 微软密码学库SymCrypt的Rust重写:内存安全与ABI兼容的工程实践
  • 终极IDM激活脚本:3种简单方法永久解锁下载管理器完整教程
  • ezygene-如何导出基因表达矩阵
  • 为什么选择PDF4QT:5个让你爱不释手的开源PDF编辑理由
  • ZMK键盘固件:如何快速打造个性化无线键盘配置
  • 手把手教你为300+车型安装openpilot:让普通汽车秒变智能驾驶座驾