在 Windows 11 上配置 Docker Desktop 和 WSL2 以进行开发

最后更新: 12/01/2026
作者: 艾萨克
  • WSL2 提供了一个内核 Linux 真实 Windows 11非常适合运行带有高性能 Linux 容器的 Docker Desktop。
  • Docker Desktop 与 WSL2 的集成使您能够使用 VS Code、Git 和 Kubernetes 开发、调试和部署应用程序。 数据库 就好像它们是Linux原生系统的一部分一样。
  • 将项目存储在 WSL2 文件系统中而不是 C: 盘,可以显著提高 Docker 性能并避免 I/O 瓶颈。
  • 凭借良好的安全、代理和资源管理配置,Docker Desktop 和 WSL2 为个人和企业开发构成了一个坚实的环境。

在 Windows 11 上配置 Docker Desktop 和 WSL2

在 Windows 11 上使用 Docker 容器 这不再是系统专家的专属领域:得益于 Docker Desktop 和 WSL2,无需离开 Windows 系统,即可搭建一个功能强大、轻量级的开发环境,其体验与原生 Linux 非常接近。通过正确的配置、工具和最佳实践,您可以在同一台机器上编译、调试和部署容器化的 Linux 和 Windows 应用程序,从而最大限度地发挥硬件性能。

本指南旨在帮助您把所有事情都做到尽善尽美。安装和配置 WSL2,使用 WSL2 引擎启动 Docker Desktop,集成 VS Code,配置 Git、数据库和远程开发容器,甚至可以微调性能、安全性并解决常见问题(代理、路由缓慢等)。 存储等等)。所有内容都用西班牙西班牙语一步一步地解释,并且非常注重实用性。

关键概念:Docker 容器、WSL2 和 Docker Desktop

在你开始随意安装东西之前了解每个组件的作用至关重要。Docker 是一个平台,它允许你将应用程序及其所有依赖项(库、框架、二进制文件、配置等)打包到称为容器的轻量级单元中。这些容器基于镜像,保证应用程序在任何机器上都能正常运行,无需你费心去解决“在我的机器上运行正常”的问题。

与经典虚拟机不同容器并不启动完整的操作系统;相反,它共享宿主机内核(在本例中为 Linux),并使用命名空间和 cgroups 隔离进程。其结果是软件包更小、启动速度近乎瞬时,并且资源利用率更高,这在处理大量微服务或 CI/CD 流水线时尤为显著。

WSL2(适用于 Linux 的 Windows 子系统 2) 这是微软第二代 Linux 子系统,它增加了一个运行在轻量级虚拟机中的真正 Linux 内核。这相比 WSL1 来说是一次巨大的飞跃:磁盘和网络性能得到提升,与原生 Linux 工具的兼容性更强,而且,对我们来说最重要的是,它完全支持基于 Linux 的 Docker 容器。

适用于 Windows 的 Docker Desktop 起到粘合剂的作用。 它将所有功能整合在一起:它提供了一个用于管理容器、镜像、卷和网络的图形界面,公开了一个完全兼容 Docker 的 CLI,并且,当您启用基于 WSL2 的引擎时,它允许您使用在 WSL2 中运行的 Linux 内核在同一台机器上运行 Linux 和 Windows 容器。

前提条件和系统准备

为了使 Docker Desktop 和 WSL2 在 Windows 11 上正常运行 您需要满足一些硬件和软件要求。请务必仔细阅读这些要求,以避免在安装或启动 Docker 守护进程时出现异常错误。

在操作系统级别建议使用 Windows 11 或支持 WSL2 的较新版本 Windows 10(版本号 20262 或更高)。您可以通过按 Windows + R 并输入以下命令来查看版本: winver 并检查已安装的版本。在 Windows 11 中,简化命令 wsl --install 它可用,并且使初始设置更加容易。

在虚拟化部分确保硬件虚拟化支持(英特尔 必须在 BIOS/UEFI 中启用 VT-x 和 AMD-V。Windows 将使用“虚拟机平台”功能,这对于 WSL2 和 Docker 后端至关重要(当不使用传统的 Hyper-V 时)。如果您计划将其他后端与 Hyper-V 一起使用,则还需要专业版、企业版或同等版本。

同时,最好也查看一下 Docker Desktop 的官方要求。 (64 位 CPU、至少 4 GB 内存、管理员权限以及足够的磁盘空间用于镜像和容器)。针对 Windows Server 上的具体安装,我们提供了单独的指南,但本文将重点介绍 Windows 11 桌面环境。

在 Windows 11 上安装和配置 WSL2

使用 wsl --mount 从 WSL2 挂载和访问物理磁盘

在 Windows 11 上实现精细化 Docker 的第一步 确保 WSL2 正确安装和配置至关重要。如果 WSL2 设置不正确,Linux 版 Docker 后端将无法顺利运行,甚至可能无法启动。

在 Windows 11 中,快捷方法是使用 PowerShell的 作为管理员 并执行以下命令:

wsl --install

此命令可自动执行几项关键任务。启用“Windows 子系统 Linux 版”和“虚拟机平台”等可选功能,下载并安装最新的 Linux 内核,将 WSL2 设置为默认版本,并自动添加 Ubuntu 发行版(如果一切顺利,中间会重启一次)。

如果您想要其他发行版,或者您要在 Windows 10 上安装,您可以手动通过“启用或关闭 Windows 功能”或 PowerShell 启用这些功能,然后从 Microsoft Store 安装您首选的发行版(Ubuntu、Debian、Fedora 等)。之后,您可以使用以下命令强制其使用 WSL2:

wsl --set-default-version 2

首次安装发行版后从“开始”菜单打开 Linux 系统后,系统会提示您创建 Linux 用户名和密码。这些用户名和密码与您的 Windows 用户帐户无关,输入密码时屏幕上不会显示任何字符(这在终端中是正常的)。该用户将拥有 Linux 发行版的管理员权限,并能够运行命令。 comandossudo.

如果过一会儿 忘记密码了吗? 发行版您可以使用用户名登录 从 PowerShell 运行 wsl -u root (o wsl -d <Distro> -u root (如果不是默认密码)并更改密码 passwd <usuario>更新完成后,您退出。 exit 准备好了。

  如何在 Windows 11 中导入和导出屏幕颜色配置文件

强烈建议安装后立即更新软件包。尤其是当你打算将发行版用作开发环境时。在 Ubuntu 或 Debian 系统中,直接从 Linux 终端执行以下命令:

sudo apt update && sudo apt upgrade

使用 WSL2 后端安装 Docker Desktop

WSL2 启动并运行后,您现在可以继续使用 Docker Desktop 了。其理念是使用 WSL2 引擎安装 Docker,而不是依赖 Hyper-V,这通常可以提供更好的性能、更低的资源消耗,以及与 Linux 工具更自然的集成。

下载 Docker Desktop 安装程序 从 Docker 官方网站下载 Docker,务必选择 Windows 版本。由于安装程序适用于多个平台,因此请仔细检查是否是适用于您系统的正确可执行文件,而不是 Linux 或 macOS 版本。

启动 Docker Desktop 安装程序时你会看到一个相当简单的向导。选择“使用基于 WSL 2 的引擎”(或类似选项,具体取决于版本)选项,这样 Docker 就会使用 WSL2 后端而不是 Hyper-V。你还可以创建一个桌面快捷方式以便更轻松地访问。

安装过程只需几分钟。根据机器配置的不同,这可能需要一些时间,因为需要复制二进制文件和服务并配置集成。完成后,系统会提示您重启。第二次重启后,系统会提示您重启。 引导从开始菜单或使用桌面图标打开 Docker Desktop,并接受许可条款(个人和小企业用户可免费使用)。

如果您还没有正确完成 WSL2 的安装,请先完成以下步骤。Docker 会提示您下载并安装 WSL2 内核。请点击程序提供的链接,安装内核软件包,重启后,重新打开 Docker Desktop,WSL2 后端应该就可以使用了。

使用 WSL2 验证和基本设置 Docker Desktop

Docker Desktop 启动后,现在需要进行调整并检查一切是否正常运行。从系统托盘(隐藏图标)中的 Docker 图标,右键单击并输入“设置”。

在“一般”部分确认已启用与“使用基于 WSL 2 的引擎”等效的选项。这可确保 Linux 容器运行在 WSL2 内核上,并且不会使用 Hyper-V 创建额外的虚拟机,从而节省内存和 CPU 资源。

接下来,转到“资源”>“WSL 集成”部分。在这里,您将看到可用的 WSL 发行版列表(Ubuntu、Debian 等),您可以选择要启用 Docker 集成的发行版。激活您的主要发行版(例如, Ubuntu这样您就可以直接从该发行版运行 Docker 命令。

确认 Docker CLI 是否响应打开 WSL 终端(例如 Ubuntu),然后运行:

docker --version

如果该命令返回 Docker 客户端和服务器版本环境已准备就绪。作为一项附加测试,您可以使用以下命令启动典型的“hello-world”测试镜像​​:

docker run hello-world

如果您在 Linux 终端中看到 Docker 欢迎消息,则表示您看到了该消息。这意味着 Docker Desktop 通过 WSL2 后端做出响应,能够从官方注册表下载镜像并成功运行它们。

性能:为什么使用 WSL2 和正确的文件路径至关重要

导致 Docker 在 Windows 上运行缓慢的最常见错误之一是…… 这是由于错误地混用了 WSL1、WSL2 和文件路径造成的。配置不当的环境会显著增加容器内的编译时间和磁盘访问量。

为了充分利用 Docker Desktop 在 Windows 11 上的性能请确保您使用的是集成 Docker 的发行版所搭载的 WSL2(而非 WSL1),并且最重要的是,请将源代码存储在 WSL 文件系统中,而不是存储在挂载的 Windows 驱动器上。 /mnt/c 或类似。

切实可行的建议很简单。在 WSL 发行版终端中,找到您目录下的项目。 /home/<usuario>, 例如 /home/miusuario/proyectos如果您想在 Windows 系统中查看这些文件,可以使用以下命令打开文件资源管理器:

explorer.exe .

这背后有着明显的业绩动机。当容器访问位于 WSL2 内部文件系统中的文件时,I/O 速度比使用路径处理流量时快得多。 C:\ 安装在下方 /mnt/c对于大型项目(Node、Python、Java 等),这两种方法之间的差异非常明显。

WSL 发行版管理和 Docker 存储

如果你打算认真使用 WSL2,您最终可能会使用多个发行版(例如,Ubuntu 用于开发,另一个用于测试等等)。您可以使用以下命令列出已安装的发行版及其 WSL 版本:

wsl -l -v

如果他们中还有人在使用 WSL1 的话您可以使用以下命令将其迁移到 WSL2:

wsl --set-version NombreDistro 2

关于 WSL 中的 Docker 存储Docker Desktop 会为其自身数据创建两个特殊的发行版: docker-desktop y docker-desktop-data这些也以网络路由的形式呈现:

  • \\wsl$\docker-desktop
  • \\wsl$\docker-desktop-data

如果您需要从 Windows 系统中查找这些文件夹。您可以打开您的 WSL 发行版并运行 explorer.exe . 然后导航至 \\wsl\<Distro>\mnt\wsl (替换)通过实际名称(例如 Ubuntu-24.04)来查看数据所在的位置。

  Wintoys 现已支持 Windows 11 25H2:新功能、下载和指南

了解图像和卷的存储位置非常重要。因为它们会占用磁盘空间,而且如果您大量使用 WSL2,虚拟机文件的大小可能会显著增长。因此,定期检查不再需要的镜像和容器始终是一个好习惯。

与 VS Code 集成:容器化开发和调试

Docker 和 WSL2 最强大的组合之一 它指的是使用 Visual Studio Code 作为主要开发环境。VS Code 直接支持在 WSL 和开发容器中进行远程工作,因此您可以在隔离的 Linux 环境中进行编辑、编译和调试,而无需离开 Windows 系统。

要设置此工作流程在 Windows 系统上安装 VS Code,然后添加三个关键扩展:

  • 远程 – WSL允许您直接在 VS Code 中打开位于 WSL 发行版中的文件夹。
  • 开发容器(原远程容器)允许您在由以下方式定义的开发容器内打开项目文件夹: Dockerfile y devcontainer.json.
  • Docker:在 VS Code 中添加面板和命令来管理图像、容器、卷和日志。

典型的流程图如下所示首先,在 WSL 终端中,使用以下命令克隆项目仓库(例如,一个示例 Django 项目):

git clone https://github.com/<usuario>/helloworld-django.git

然后进入项目文件夹cd helloworld-django 然后打开 VS Code,并指向该路由:

code .

如果 WSL 扩展程序已激活,您将在底部栏中看到它。 绿色指示灯表明您连接的是 Linux 发行版,而不是 Windows 会话。此时,您可以使用命令面板(Ctrl + Shift + P)运行“Dev Containers: Reopen in Container”(如果您已在 WSL 文件夹中),或者运行“Dev Containers: Open Folder in Container…”(即使通过资源管理器)来选择其他文件夹。 \\wsl$).

选择默认容器配置时 (例如,对于 Django 项目,选择“Python 3”),VS Code 将生成该文件夹 .devcontainerDockerfiledevcontainer.jsonVS Code 将启动一个开发容器,如有必要,将重新构建镜像,并打开一个连接到该容器的新窗口。

容器内部集成了 VS Code 终端 它会显示你使用的是 Linux 系统(你可以用以下命令检查): unamePython 版本将由容器镜像决定,而不是由 WSL 发行版中安装的版本决定。这样,您可以为每个项目创建可重复且隔离的开发环境。

要在 VS Code 中调试应用程序转到“运行和调试”选项卡,选择相应的配置(例如,“Django”),VS Code 将创建一个 launch.json 使用启动参数。按下 F5 将在容器内启动开发服务器,然后您可以在浏览器中打开您的应用程序(例如,在浏览器中打开)。 http://127.0.0.1:8000/).

Windows 11 中 Docker 的基本用法

在 Windows 11 上配置 Docker Desktop 和 WSL2 以进行开发

Docker Desktop 启动并运行后无论是在 PowerShell 还是 WSL 中,您都可以使用标准的 Docker 命令来管理镜像和容器。这将使您能够超越基本的测试,部署实际的服务。

开头最常用的命令 它们通常是:

  • docker显示可用命令列表。
  • docker <comando> --help:对每条命令进行简要说明。
  • docker image ls --all:系统中存储的所有图像列表。
  • docker container ls --all o docker ps -a显示所有容器,无论正在运行还是已停止。
  • docker info:有关 Docker 安装的全局信息(后端、内存、容器数量等)。

从 Docker Desktop 图形界面 您还可以在 Docker Hub 上搜索镜像,使用“pull”命令下载它们,启动新的容器,检查 CPU/RAM 使用情况,或进行其他检查。 日志如果你还不完全熟悉命令行,这是一种方便的入门方式。

值得注意的是,并非所有图片都同样可靠或安全。Docker Desktop 包含对某些镜像的漏洞扫描,但一般来说,最好是依赖官方或维护良好的镜像,检查标签,并避免使用包含过时组件的过时镜像。

WSL2 和容器开发最佳实践

为了营造稳定舒适的开发环境 El Temppo仅仅“启动”是不够的,建议在 WSL2 和 Docker Desktop 中遵循一系列良好实践。

在 WSL2 中,请保持内核和发行版更新。 运用 wsl --update 通过 Windows 和各发行版内的软件包管理器(apt、dnf 等)。日常工作使用非 root 用户,将 root 用户保留用于特定的管理任务,如果运行高负载程序,请控制资源消耗(您可以使用配置文件限制 WSL2 的内存和 CPU)。

正在使用容器进行开发尽量将代码和工具放在同一“侧”(Linux 或 Windows),以避免因使用跨文件系统而导致的 I/O 瓶颈。如果在容器内编译,请将项目放在 WSL2 文件系统中,并使用直接卷从 Docker 访问它们。

适用于企业或生产环境除了 Docker 之外,还必须使用 Kubernetes 等编排工具,并应用额外的安全策略(例如镜像扫描、私有日志访问控制、凭证轮换等)。专业的公司可以帮助您设计开发和部署架构,将 WSL2、Docker、CI/CD 和云服务(Azure、AWS)与相应的安全措施集成在一起。 网络安全.

就 WSL2 的安全性而言即使它运行在轻量级虚拟机中,您仍然需要应用安全补丁、使用防火墙,并保护 Windows 主机和 Linux 发行版。此外,请确保容器化应用程序不会向外部网络暴露不必要的端口或服务。

  如何在 Windows 11 中激活两个音频输出

WSL 中 Windows 和 Linux 之间的互操作性

WSL2 的优势之一是 Windows 和 Linux 命令之间良好的兼容性。您可以在同一流程中混合使用来自两个世界的工具,这对于脚本和自动化非常有用。

从 Windows 终端(PowerShell 或 CMD)您可以通过以下方式启动 Linux 命令 wsl例如,列出以下内容 C:\temp 运用 ls -la 来自 Linux:

wsl ls -la

您还可以将双方的筛选条件结合起来使用。,例如:

wsl ls -la | findstr "git"

反之亦然,即从 WSL 使用 Windows 命令。.exe例如,要编辑文件 .bashrc 使用 Windows 记事本从您的用户帐户中打开:

notepad.exe .bashrc

这种互操作性有助于完成诸如此类的任务。 过滤输出 ipconfig.exegrep在 Linux 系统中打开图形编辑器,或者在两个系统中处理文件,而无需不断切换窗口。

WSL2 中的 Git、数据库和 GPU 配置

除了 Docker 之外,WSL2 还提供了一个现代化的开发环境。 它通常包括使用 Git 进行版本控制、数据库,在某些情况下,还包括用于机器学习或计算密集型任务的 GPU 加速。

对于 Git,建议在 WSL2 中工作。 使用 Linux Git 命令行界面,通过 SSH 密钥或凭据管理器连接到 GitHub、GitLab 或类似服务。VS Code 与 Git 无缝集成,支持以可视化方式管理分支、提交和冲突。

关于数据库您可以在 WSL2 中安装和管理 MySQL、PostgreSQL、MongoDB、Redis 或 SQLite 等数据库引擎,并将容器连接到它们,反之亦然。针对每种数据库,都有专门的指南指导您如何在 WSL2 中运行它们,从而充分利用它们接近原生数据库的性能。

如果你从事人工智能或高性能计算方面的工作WSL2 在 Windows 11 上支持 GPU 加速。 驱动程序 适用。这允许您在 Linux 系统上,在 WSL2 中,甚至在 Docker 容器中,直接使用计算机的显卡运行 TensorFlow 或 PyTorch 等框架。

整个生态系统可以与 CI/CD 管道和云服务集成。这样,您在 Windows 笔记本电脑上使用 WSL2 和 Docker 进行开发和测试的内容,与您之后将在生产环境中部署的环境(在容器、Kubernetes 或托管服务中)非常相似。

Docker Desktop 和 WSL2 常见问题排查

无论你设置得多么完善,问题迟早都会出现。了解常见的故障以及如何解决这些故障可以避免很多麻烦,尤其是在网络受限的企业环境中。

一个经典的例子是传统的 Docker “wsl” 上下文 来自较旧版本的 Docker for WSL。如果您运行 docker context ls 你会看到一个名为“上下文”的上下文 wsl它很可能已经过时,并会导致诸如“打开 //./pipe/docker_wsl:系统找不到指定的文件”之类的错误。

解决方法是删除旧的上下文。 搭配:

docker context rm wsl

移除后,Docker 将使用默认上下文。 对于 Windows 和 WSL2,避免因管道不再存在而导致的 Docker 守护进程连接错误。

另一个非常常见的问题是通过公司代理进行工作。 这需要通过身份验证 usuario:contraseña当在环境变量中包含凭据时,Docker Desktop 经常会抛出错误。 HTTP_PROXY 或者在程序的直接配置中,显示诸如“用户配置中的 HTTP 代理无效:不得包含凭据”之类的消息。

在这些情况下,有几种相对更安全的选择。使用外部身份验证代理(例如 CNTLM)来管理凭据并公开无需用户名/密码的本地代理;在 Windows 和 Docker 中配置代理,无需将凭据嵌入 URL;或者使用专用凭据存储。手动编辑 settings.json o config.json 在 Docker Desktop 的 URL 中强制使用用户名:密码通常会导致 Docker 启动失败或忽略该设置。

如果问题出在 WSL2 安装上 (执行过程中出错) wsl --install 或者在启动发行版时),建议查看 WSL 故障排除指南:检查 Windows 功能是否已正确启用,WSL2 内核是否已正确安装,以及系统是否已更新到最新补丁。

对于其他更具体的问题 (例如 Docker 存储路径、挂载外部磁盘、运行 Linux GUI 应用程序等),官方 WSL 文档及其存储库问题中包含示例命令,例如: wsl --mount 以及针对每种情况的具体配置。

结合你所看到的所有内容,你已经为在 Windows 11 上搭建现代开发环境奠定了非常坚实的基础。 借助 WSL2、Docker Desktop 和 VS Code,您可以像在原生发行版上一样使用 Linux 容器,集成 Git 和数据库,在需要时使用 GPU 加速,最重要的是,其性能和灵活性远超传统虚拟化,同时还能保持良好的安全性和对资源的控制。