ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Win11 上 Docker Desktop 安装与 WSL2 配置全流程指南

Win11 上 Docker Desktop 安装与 WSL2 配置全流程指南 1. 为什么 Win11 上跑 Docker Desktop 值得折腾如果你刚重装完 Win11或者正准备从旧电脑迁移到一块更大的 SSD 上想在新系统里把 Docker 环境搭起来那这篇内容就是写给你的。我自己前前后后在不同配置的 Win11 机器上装过不下十次 Docker Desktop踩过的坑从“虚拟化没开”到“WSL2 内核版本对不上”再到“镜像拉取慢到怀疑人生”基本都经历了一遍。这篇就把整个流程从头到尾捋清楚包括 WSL2 的安装配置、Docker Desktop 的下载安装、国内镜像源的替换、以及一堆新手最容易卡住的报错处理。先说清楚这套方案能干什么。Docker Desktop 在 Win11 上跑起来之后你可以在本地直接拉取镜像、启动容器、跑数据库、跑各种开发环境甚至跑 Ollama 这类本地大模型工具。它解决的核心问题是不用在 Windows 上直接装一堆乱七八糟的运行环境所有东西都塞进容器里用完就删互不干扰。适合谁看刚接触容器的新手、需要在本机快速搭开发环境的程序员、想跑本地 AI 工具但不想污染系统的人以及那些被“virtualization support not detected”这类报错卡住过的朋友。整个方案的核心依赖是两个东西WSL2和Docker Desktop。WSL2 是 Windows 的 Linux 子系统Docker Desktop 在 Win11 上默认就是跑在 WSL2 后端上的。所以 WSL2 装不好Docker Desktop 一定起不来。这也是为什么很多教程把 WSL2 安装放在第一步——顺序不能乱。提示如果你的 Win11 是刚重装的建议先把系统更新跑完再动手避免因为系统组件版本太旧导致 WSL2 装不上。2. 装之前必须确认的三件事2.1 确认 CPU 虚拟化已经在 BIOS 里打开这是最容易被忽略、也最容易导致后面报错的一步。Docker Desktop 启动时报的那个经典错误 “virtualization support not detected”十有八九就是虚拟化没开。怎么确认按Ctrl Shift Esc打开任务管理器切到“性能”标签页点左侧的“CPU”看右下角有没有“虚拟化已启用”这一行。如果显示“已禁用”那就得进 BIOS 打开。进 BIOS 的方法因主板品牌而异常见的是开机时按Del、F2、F10或F12。进去之后找Intel Virtualization TechnologyIntel 平台或者SVM ModeAMD 平台把它设成Enabled保存重启。不同主板菜单名字不太一样有的叫VT-x有的叫AMD-V本质是同一个东西。注意有些品牌机尤其是笔记本BIOS 里虚拟化选项藏得比较深可能在Advanced或者Security菜单下面。找不到的话直接搜你机型加“开启虚拟化”关键词。2.2 确认 Win11 版本和系统架构Docker Desktop 对系统有最低要求。Win11 的话家庭版、专业版都能装但必须是 64 位系统。查看方法Win I打开设置进“系统”然后“关于”看“系统类型”是不是“基于 x64 的处理器”。另外 WSL2 需要 Windows 版本在 2004 及以上内部版本 19041 及以上。Win11 全系都满足这个条件所以只要你装的是正经 Win11这块不用太担心。但如果你是从很老的 Win10 升上来的建议先跑一遍 Windows Update。2.3 确认磁盘空间和 SSD 情况Docker 镜像和容器是很吃磁盘的。WSL2 的虚拟磁盘文件默认会随着使用不断增长一个不小心就吃掉几十个 G。如果你像我一样是本地电脑用 SSD 装的系统现在想升级更大的 SSD 并迁移 Win11那迁移完之后记得检查一下 WSL2 的磁盘占用。建议至少留出 40GB 以上的空闲空间给 Docker 和 WSL2 用。查看方法很简单打开“此电脑”看 C 盘剩余空间。如果 C 盘快满了先做一轮 C 盘清理把临时文件、旧的系统更新缓存清掉再开始装。检查项合格标准不合格的后果CPU 虚拟化BIOS 中已启用Docker 无法启动系统架构64 位无法安装Windows 版本Win11 全系WSL2 装不上磁盘空间剩余 40GB 以上镜像拉取失败、系统卡顿3. WSL2 安装整个流程的地基3.1 一条命令搞定 WSL2 安装以前装 WSL2 要手动开一堆 Windows 功能还要自己去下内核更新包步骤繁琐。现在 Win11 上简化了很多一条命令基本能搞定。以管理员身份打开 PowerShell开始菜单搜 PowerShell右键“以管理员身份运行”然后输入wsl --install这条命令会自动帮你做几件事启用“适用于 Linux 的 Windows 子系统”功能、启用“虚拟机平台”功能、下载并安装 WSL2 内核、把 WSL2 设为默认版本。执行完之后重启电脑。重启后系统可能会自动弹出一个 Ubuntu 的窗口让你设置用户名和密码这就是默认安装的 Ubuntu 发行版。如果你想要指定版本比如 Ubuntu 22.04可以这样wsl --install -d Ubuntu-22.043.2 手动开启相关 Windows 功能命令失败时用有时候wsl --install会因为系统组件状态异常而失败。这时候就手动来。打开“控制面板”里的“启用或关闭 Windows 功能”勾选下面两项适用于 Linux 的 Windows 子系统虚拟机平台勾完确定重启。重启后再用管理员 PowerShell 把 WSL2 设为默认wsl --set-default-version 2然后去装发行版。如果wsl --install还是不行可以试试先wsl --update更新一下 WSL 组件本身。3.3 验证 WSL2 是否装好装完之后验证一下。在 PowerShell 里输入wsl -l -v正常的话会列出你装的发行版VERSION那一列应该是2。如果显示1说明默认版本没设对用wsl --set-version Ubuntu-22.04 2单独改。再进到 WSL 里面看看wsl uname -a能正常输出 Linux 内核信息就说明 WSL2 跑起来了。这一步过了Docker Desktop 的地基就算打好了。实操心得WSL2 装好之后建议顺手把 WSL 的保活配置做一下。默认情况下 WSL 空闲一段时间会自动关闭导致 Docker 容器也跟着停。可以在用户目录下建一个.wslconfig文件加上[wsl2]和vmIdleTimeout-1来防止自动休眠。这个后面讲 Docker 使用时会再提。4. Docker Desktop 下载与安装4.1 下载安装包Docker Desktop 的官方下载地址是https://www.docker.com/products/docker-desktop/。打开之后页面会自动识别你的系统点那个 “Download for Windows” 按钮就行。但这里有个现实问题国内直接下官方安装包速度可能非常慢甚至下到一半断掉。如果你遇到这种情况可以找一些 GitHub 下载加速镜像源来下。思路是把官方下载链接套进加速服务里或者找国内一些技术社区提供的镜像下载地址。安装包本身大概 500MB 到 600MB下的时候耐心点。注意下载来源一定要认准官方或者可信的镜像别随便从不明来源下 exe安装包被篡改的风险是真实存在的。4.2 安装过程的关键选项双击安装包一路下一步。中间会有一个选项问你要不要用 WSL2 代替 Hyper-V这个一定要勾上。Win11 上默认就是 WSL2 后端勾上之后 Docker 会直接跑在 WSL2 里性能比老的 Hyper-V 后端好很多启动也快。安装完成后会提示重启重启就完事了。重启后 Docker Desktop 会自动启动第一次启动会初始化等它托盘图标变成稳定的状态就行。4.3 首次启动的配置第一次打开 Docker Desktop可能会让你登录账号。不登录也能用直接跳过或者点 “Continue without signing in” 就行。然后它会问你要不要发使用数据随意选。进到主界面之后左下角会显示 Docker 引擎的状态。绿色就代表正常红色或者黄色就是有问题。点右上角的齿轮进设置确认 “Use the WSL 2 based engine” 是勾选状态。如果启动时报 “Docker Desktop failed to start because virtualisation support wasnt detected”回到第 2 章检查虚拟化。如果报 WSL2 相关的错回到第 3 章确认 WSL2 装好了。5. 镜像源配置解决拉取慢的核心操作5.1 为什么要换镜像源Docker 默认从 Docker Hub 拉镜像国内访问 Docker Hub 的速度大家心里都有数慢的时候一个几百兆的镜像能拉半小时。换国内镜像源之后速度能提升非常明显。这是整个流程里性价比最高的一步操作。5.2 配置 Docker Desktop 的镜像源打开 Docker Desktop 设置找到 “Docker Engine” 这一项。右边是一个 JSON 配置框找到registry-mirrors这个字段把国内镜像源地址填进去。如果原来没有这个字段就自己加上。配置格式大概是这样{ registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com ] }填完之后点右下角的 “Apply Restart”Docker 会重启引擎。重启完可以拉个镜像测试一下速度比如docker pull hello-world提示镜像源地址不是一成不变的有些会失效或者限速。建议一次配两三个Docker 会按顺序尝试。如果某个源挂了换一个就行。网上搜“docker 镜像源”能找到当前可用的列表。5.3 WSL2 内部的镜像源也要配这一步很多人会漏。Docker Desktop 跑在 WSL2 里但你在 WSL2 的 Ubuntu 里用apt装软件时走的还是 Ubuntu 自己的源。如果 Ubuntu 的源没换装东西一样慢。进 WSL2 的 Ubuntu编辑/etc/apt/sources.list把里面的archive.ubuntu.com和security.ubuntu.com替换成国内源比如清华镜像源或者阿里云的源。改完执行sudo apt update sudo apt upgrade另外如果你在 WSL2 里用 pip 装 Python 包也建议把 pip 源换成清华镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple如果你跑 Ollama 这类工具它拉模型也有自己的源国内也有对应的加速方式思路是一样的找对应的镜像源配置就行。配置对象配置文件/位置作用Docker 引擎Docker Desktop 设置里的 Docker Engine加速 docker pullUbuntu apt/etc/apt/sources.list加速 apt installpippip config加速 pip installnpmnpm config加速 npm install6. 装完之后怎么用从零跑起第一个容器6.1 验证 Docker 是否正常工作装完配完先验证一下。打开 PowerShell 或者 WSL2 终端输入docker version能看到 Client 和 Server 两部分的版本信息说明 Docker 引擎正常。如果只显示 Client 不显示 Server说明引擎没起来回去检查 Docker Desktop 是不是在运行。再跑个经典的测试docker run hello-world看到 “Hello from Docker!” 就说明整个链路通了。6.2 常用命令速查新手刚上手记住这几个命令基本够用docker pull 镜像名拉取镜像docker images查看本地镜像docker run 镜像名启动容器docker ps查看运行中的容器docker ps -a查看所有容器包括已停止的docker stop 容器ID停止容器docker rm 容器ID删除容器docker rmi 镜像ID删除镜像比如你想跑一个 Nginxdocker run -d -p 8080:80 nginx然后浏览器打开localhost:8080就能看到 Nginx 欢迎页。-d是后台运行-p是端口映射把容器里的 80 端口映射到本机的 8080。6.3 在 WSL2 里开发如果你用 IDEA 或者 VS Code可以直接连到 WSL2 里开发。VS Code 装个 WSL 扩展然后在 WSL2 终端里输入code .就能用 VS Code 打开当前目录。这样代码跑在 Linux 环境里但编辑体验还是 Windows 的两边优势都占了。Docker 容器和 WSL2 配合起来你可以把开发环境整个塞进容器本机只留一个编辑器和 Docker干净利落。7. 常见报错与排查速查表7.1 启动类报错virtualization support not detected这个前面说过就是 BIOS 虚拟化没开。进 BIOS 打开 VT-x 或 SVM保存重启。如果确认开了还报这个错检查是不是被其他虚拟化软件占用了比如 VMware 或者 VirtualBox 同时开着。Win11 上如果装了 VMware有时候会和 Hyper-V 冲突需要调整一下启动配置。Docker Desktop failed to start because virtualisation support wasnt detected和上面是同一个问题措辞略有不同。处理方式一样。WSL2 相关启动失败先wsl --update更新 WSL再wsl --shutdown关掉所有 WSL 实例然后重启 Docker Desktop。还不行就检查 WSL2 内核版本wsl --status能看到。7.2 网络类报错拉取镜像超时镜像源没配或者配的源失效了。回到第 5 章重新配。也可以试试docker pull的时候指定完整地址。容器里访问不了外网WSL2 的网络模式默认是 NAT一般没问题。如果遇到 DNS 解析失败可以在 WSL2 里改/etc/resolv.conf加上nameserver 8.8.8.8。不过 Win11 较新版本对 WSL2 网络做了优化这种情况比以前少多了。7.3 磁盘类问题C 盘空间被 WSL2 吃满WSL2 的虚拟磁盘文件默认放在C:\Users\你的用户名\AppData\Local\Packages\下面文件名类似ext4.vhdx。这个文件只增不减删了容器也不释放。解决办法是用wsl --manage或者手动压缩 vhdx。更彻底的办法是把 WSL2 的磁盘迁移到其他盘网上有详细步骤核心是导出再导入。迁移 Win11 到新 SSD 后 Docker 起不来如果你刚把系统迁移到更大的 SSDDocker 可能因为路径变化起不来。检查 Docker Desktop 设置里的磁盘镜像位置重新指向正确路径。WSL2 的发行版也可能需要重新注册。报错关键词大概率原因处理方向virtualization supportBIOS 虚拟化未开进 BIOS 开启WSL2 failedWSL 组件异常wsl --updatepull timeout镜像源问题换镜像源disk fullvhdx 膨胀压缩或迁移boot 相关系统迁移后路径错重新注册 WSL8. 几个让体验更好的小配置8.1 汉化 Docker DesktopDocker Desktop 官方界面是英文的用起来倒也不难但如果你想要中文界面社区有汉化方案。思路是替换掉安装目录下的资源文件把英文语言包换成中文的。操作前记得备份原文件不然出问题不好恢复。汉化包版本要和 Docker Desktop 版本对应版本不匹配可能导致界面错乱。8.2 关闭 Win11 自动更新可选这个看个人需求。Win11 自动更新有时候会在你正跑着容器的时候重启系统挺烦的。如果你不想被打断可以在服务里把 Windows Update 设成手动或者用组策略控制更新时机。但完全关闭更新不是好习惯安全补丁还是要打的建议改成“通知后安装”而不是彻底关掉。8.3 右键菜单改回 Win10 风格Win11 的右键菜单把很多选项藏进了“显示更多选项”用惯了 Win10 的人会很不适应。改回去的方法是用命令行注册表操作一条命令就能恢复经典菜单。这个和 Docker 没直接关系但装完系统调环境的时候顺手做了体验会舒服很多。8.4 WSL2 里装图形化界面WSL2 默认是命令行但 Win11 支持 WSLg可以直接跑图形界面程序。装个简单的 GUI 测试一下比如sudo apt install x11-apps然后跑xeyes能弹出窗口就说明图形界面支持正常。这对需要在 WSL2 里跑一些带界面的开发工具很有用。9. 我踩过的坑和给你的建议第一个坑是虚拟化。我第一次装的时候死活起不来报 virtualisation 的错折腾了半天才发现是 BIOS 里没开。所以我现在养成的习惯是装任何虚拟化相关的东西之前先看一眼任务管理器里的虚拟化状态。第二个坑是镜像源。早期不知道配镜像源拉一个 Python 镜像拉了四十分钟差点以为网断了。配了国内源之后同样的镜像几十秒就下来了。这一步真的不能省。第三个坑是磁盘。WSL2 的 vhdx 文件膨胀起来没上限我有次 C 盘莫名其妙少了三十个 G查了半天才发现是 WSL2 的磁盘。后来把 WSL2 迁到了 D 盘C 盘就清净了。如果你 C 盘本来就不大建议一开始就把 WSL2 装到其他盘。第四个坑是系统迁移。我后来把系统从旧 SSD 迁到新的大容量 SSD迁移完 Docker 起不来WSL2 的发行版也丢了。重新注册 WSL2 发行版、重新配 Docker 镜像源又折腾了一遍。所以如果你打算迁移系统迁移前先把 Docker 和 WSL2 的相关配置备份一下能省不少事。最后再分享一个小技巧Docker Desktop 的设置里有个 “Resources” 选项可以限制 WSL2 能用的 CPU 和内存。如果你机器内存不大建议限制一下不然 WSL2 会把内存吃满导致 Windows 本身卡顿。一般给 4GB 到 8GB 就够了具体看你跑什么容器。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表