如何在不依赖硬件虚拟化的情况下安装 Docker Desktop

最后更新: 08/01/2026
作者: 艾萨克
  • Windows 上的 Docker Desktop 依赖虚拟化(Hyper-V 或 WSL2)来提供内核 Linux 并运行容器。
  • WSL2 允许您直接在 Linux 发行版中安装 Docker Engine,在不需要 GUI 时避免使用 Docker Desktop。
  • 在 Windows 专业版/企业版中,Hyper-V 可用作 Docker Desktop 和其他虚拟机的替代后端。
  • 不支持虚拟化 硬件 使用 Docker Desktop 的选择范围缩小到远程解决方案或其他设备。

Docker Desktop 指南(无需硬件虚拟化)

在没有活动硬件虚拟化的情况下,如何在 Windows 上安装和使用 Docker Desktop (或者你的CPU或你的 BIOS这看似一项不可能完成的任务,尤其是在你看过几十个教程之后,这些教程都假定你已经安装了 Hyper-V 或 WSL2。但实际情况远比这复杂:Windows 容器、Linux 容器、WSL2、Hyper-V、传统虚拟机……每种组合都有其自身的局限性。

在本指南中,我们将冷静而直接地分析在不使用硬件虚拟化的情况下,Docker Desktop 可以做什么和不能做什么。在 Windows 上运行容器有哪些真正的替代方案?如何利用 WSL2 和“纯”Docker Engine 在必要时避免使用 Docker Desktop? 技巧 即使在配置一般的设备上,您也可以使用 VS Code 轻松地进行容器开发。

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

在讨论虚拟化需求之前,需要先明确一些基本概念。因为你在机器上能做什么取决于它们:

容器并不完全等同于虚拟机。它与宿主系统共享内核,并将进程、库和文件系统隔离。这就是为什么 Linux 容器使用宿主机的 Linux 内核,而 Windows 容器使用宿主机的 Windows 内核,除非你在两者之间添加虚拟化层。

Docker引擎 它是 Docker 的“真正”引擎,负责创建、管理和运行容器。它原生运行于 Linux 系统,并通过命令行进行管理。 comandos 而且它是完全免费的,没有使用限制,既适用于开发也适用于生产环境。

Docker Desktop 是一款桌面应用程序 它包括 Docker Engine 以及图形界面、Kubernetes 集成、开发工具、资源面板、简易配置等。在 Windows 和 macOS 上,它始终依赖某种形式的虚拟化来提供容器运行的 Linux 环境。

Linux 和 Windows 之间的主要区别 事实上,在 Linux 系统上,Docker Engine 可以直接在内核上运行,无需中间的虚拟机;而在 Windows 和 macOS 系统上,Docker Desktop 使用隐藏的 Linux 虚拟机,依赖于 WSL2 或 Hyper-V,这意味着需要硬件级虚拟化。

最后,Windows容器 它们可以以两种模式运行:进程隔离(共享宿主机的 Windows 内核)或 Hyper-V 式隔离(每个容器运行在独立的虚拟机中)。实际上,对于大多数使用 Windows 版 Docker Desktop 的现代场景,最终都会以某种形式使用虚拟化。

Windows容器能否在不运行Hyper-V的情况下运行?

Windows 容器和虚拟化要求

典型的问题是,是否可以在不使用 Hyper-V 的情况下运行“纯”Windows 容器。这是通过仅使用宿主机 Windows 内核并处于进程隔离模式来实现的,从而避免了硬件虚拟化。理论上,进程隔离正是允许这样做的:使用同一个内核,而无需中间的虚拟机管理程序。

实际问题在于,Docker Desktop 和现代版本的 Windows 所支持的大多数场景都存在兼容性问题。 它们的设计旨在与启用 Hyper-V 和/或 WSL2 的环境配合使用。即使使用 Windows 容器,Docker Desktop 也严重依赖于微软的虚拟化基础架构。

尝试在不使用任何虚拟化的情况下运行 Windows 容器 这会把你引向一条非常受限的道路:你依赖于特定版本的 Windows Server 或 Windows 10/11,你需要启用特定的功能,即使如此,体验仍然很脆弱,配置复杂,并且与标准的 Docker Desktop 提供的功能相去甚远。

此外,还有一些项目,例如在 Linux 系统中使用 Wine 运行 Windows 版 Docker。 他们遇到了一个相当严峻的现实:Windows 上的 Docker Desktop 和 Docker 引擎需要与虚拟化层和非常特定的系统 API 进行通信。Wine 无法可靠地实现所有这些功能,因此这个想法更像是一种理论实验,而不是一个可用的解决方案。

目前的实用结论是:如果您的目标是在现代 Windows 主机上运行 Windows 容器,那么可以考虑以下方案:迟早,你需要虚拟化技术(Hyper-V 或 WSL2)才能获得功能完善且受支持的体验。否则,一切都只能是功能受限的权宜之计。

如果您需要在 Windows 上使用 Docker 但又不想依赖 Docker Desktop,以下是一些选项。

Windows 系统上 Docker Desktop 的替代方案

如果出于任何原因,您想要或需要避免在 Windows 主机上使用 Docker Desktop,根据您的硬件配置和所使用的 Windows 版本,您有几种合理的替代方案。

最经典的选择是创建 Linux 虚拟机 使用 VMware Workstation、Oracle VirtualBox 或 Microsoft Hyper-V 等工具,您可以安装 Linux 发行版并在其中设置 Docker Engine。但是,所有这些解决方案仍然需要在 BIOS 中启用硬件虚拟化。

  OpenF1 API 的用途是什么以及如何充分利用它?

VMware 和 VirtualBox 它们运行良好,但所属公司的商业行为令人质疑,且资源成本较高。即便如此,它们仍然是非常成熟的解决方案,拥有用户友好的管理界面,并且网上有大量的文档和教程可供参考。

Hyper-V 它与 Windows(专业版及更高版本)集成,免费且非常稳定。它允许您创建轻量级虚拟机,并在其中部署 Linux 以及 Docker Engine。如果您已经拥有 Windows 专业版或企业版,并且想要一个相对“官方”的环境而无需安装第三方软件,那么它是一个极具吸引力的选择。

对于当今大多数家庭用户和开发人员来说,最简单的替代方案是 它涉及使用 WSL2(Windows 子系统 Linux 2)并在 Linux 发行版中直接运行 Docker Engine。这样,如果您愿意,可以完全放弃 Docker Desktop,直接在 Linux 命令行中工作,并继续使用您的 Windows 工具。

在 Windows 10 和 Windows 11 上安装和准备 WSL2

WSL2 已成为微软和 Docker 推荐的方法。 在 Windows 上使用 Linux 容器,包括 Windows 10 和其他系统。 Windows 11它提供了一个真正的 Linux 内核,并将其打包在一个小型、优化的虚拟机中,与系统集成得非常好。

首先,请检查您的 Windows 版本是否兼容。。 按 WIN+R,写道 winver 并核对数据:

  • Windows 10 最低版本必须是 1903,内部版本号为 18362.1049 或更高。
  • Windows 11 它与所有当前版本兼容。

接下来,检查硬件虚拟化是否已启用。。 打开 任务经理,转到标签 性能,选择 中央处理器 请查看信息框:它应该显示“虚拟化:已启用”。

如果它显示为已禁用,而您的 CPU 支持虚拟化您需要进入主板的UEFI/BIOS并启用虚拟化选项(英特尔 VT-x、AMD-V 或类似技术)。如果您的处理器非常老旧或制造商已对其进行限制,这将是您的物理极限。

要在 Windows 上启用 WSL2 功能, 按 WIN+R,写道 optionalfeatures 在“功能”窗口中,选中以下两个条目:

  • Virtual Machine Platform
  • Windows Subsystem for Linux

让Windows下载并安装必要的组件。完成后,它会提示您重启。请重启,否则 WSL2 将无法正确应用。

系统重启后,打开一个 命令提示 具有管理员权限 (在“开始”菜单中搜索“命令提示符”> 右键单击​​ > 以管理员身份运行)并运行:

wsl --set-default-version 2

然后它更新 WSL2 内核 更新至最新版本:

wsl --update --web-download

要查看您可以安装哪些 Linux 发行版列出所有可在网上找到的:

wsl --list --online

一般建议 对于初学者 关键在于使用最新的 Ubuntu LTS 版本。因为大多数文档和示例都基于它。例如,要安装 Ubuntu 24.04 LTS:

wsl --install --web-download --distribution Ubuntu-24.04

发行版安装完成后,会自动打开一个窗口。 终端 它会要求您为该 Linux 系统创建用户名和密码。请选择安全的凭据;理想情况下,它们不应与您的 Windows 帐户相同。

如果您想优化发行版虚拟磁盘占用的空间,您可以通过 Windows 命令提示符将其配置为“稀疏”(动态):

wsl --manage Ubuntu-24.04 --set-sparse true

从现在开始,你就拥有了一个完整的Linux环境,它“运行”在Windows“内部”。您可以随时运行以下命令访问它: wslCMD, PowerShell的 或者使用 Windows Terminal,它也会为每个已安装的发行版创建配置文件。

在 WSL2 上安装 Docker Engine,无需 Docker Desktop

在 WSL2 下运行 Linux 发行版后,下一步是直接在 WSL2 上安装 Docker Engine。这样就避免了额外的 Docker Desktop 层。这能提供接近原生应用的性能,而且在很多情况下,如果您不需要图形界面,还能简化操作。

首先在 WSL2 中启动 Ubuntu,并更新软件包列表。 确保一切都是最新的:

sudo apt-get update

安装使用 HTTPS 存储库所需的基本依赖项 并管理第三方 GPG 密钥:

sudo apt-get install ca-certificates curl

创建用于存储官方 Docker 仓库 GPG 密钥的目录 并下载密钥:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

添加 Ubuntu 官方 Docker 仓库。 使用您系统的架构和代号:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

现在您已经添加了 Docker 源,请再次更新存储库。 用你的工具安装发动机:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

为了避免每次使用 Docker 命令时都必须使用 sudo将您的 Linux 用户添加到该组 docker:

sudo usermod -aG docker $USER

退出发行版并重新登录 (或者关闭 WSL 窗口并重新打开)以使组更改生效。如果一切顺利,您将能够运行:

  Windows 10 无法识别显卡 |解决方案

docker info
docker run --rm hello-world

如果您看到 Docker 欢迎消息,则说明您的 Linux 容器环境已经在 WSL2 上启动并运行。完全独立于 Docker Desktop,且资源消耗极低。

使用 Docker Desktop 和 WSL2 后端代替 Hyper-V

如果您更喜欢“桌面”体验,例如图形界面和向导,您可以继续使用 Docker Desktop,但需指定其后端使用 WSL2 而非 Hyper-V。这在 Windows 10 家庭版上尤其有用,因为该版本不支持完整的 Hyper-V 功能。

从 Docker 官方网站下载 Docker Desktop 然后运行安装程序。安装过程中,如果您的系统同时支持 WSL2 和 Hyper-V,它会询问您要使用 WSL2 还是 Hyper-V。在大多数开发场景下,建议选择 WSL2。

安装完成后,从“开始”菜单启动 Docker Desktop。当 Docker 图标出现在系统托盘中时(它可能位于隐藏图标菜单中),右键单击它并输入…… 个人设置.

在设置的“常规”部分,确保选中“使用基于 WSL 2 的引擎”复选框。因为它告诉 Docker Desktop 依赖 WSL2 来运行 Linux 容器。

在“设置”>“资源”>“WSL 集成”中您会看到已安装的 WSL2 发行版列表。为您想要使用 Docker 的发行版启用集成(例如,您的 Ubuntu 24.04)。启用后,您就可以使用 Docker Desktop 管理的 Docker Engine 从该发行版启动容器。

为了确认一切正常,请在 WSL 发行版中打开终端。 并执行:

docker --version
docker run hello-world

如果测试容器运行正常,则说明 Docker Desktop 已成功与 WSL2 后端配合使用。这样一来,您就可以将图形界面、便捷的图像管理以及 WSL2 相当不错的性能结合起来。

Hyper-V 作为 Docker Desktop 的虚拟化替代方案

在安装了 Windows 10/11 专业版或企业版且支持硬件虚拟化的系统上另一种选择是让 Docker Desktop 直接使用 Hyper-V 作为内部 Linux 虚拟机的虚拟化引擎。

Hyper-V 是微软的原生虚拟机管理程序它同时支持 Windows Server 和专业版桌面 Windows 系统。对于 Docker 而言,它充当轻量级虚拟机的宿主机,Docker 引擎和整个容器堆栈都在该虚拟机上运行。

要启用 Hyper-V,请返回 Windows 功能面板。 (控制面板 > 程序 > 程序和功能 > 启用或关闭 Windows 功能)并选中该复选框 Hyper-V如果系统提示,请准备好 ISO 文件或让 Windows 下载组件。

重启后,下载并安装适用于 Windows 的 Docker Desktop。在向导过程中,取消勾选使用 WSL2 作为后端的选项,并保持启用 Hyper-V。安装程序将在 Hyper-V 上创建 Docker 虚拟机并配置必要的服务。

重启并启动 Docker Desktop 后使用您的 Docker 帐户登录(个人和小型企业用户免费),并完成简短的欢迎问卷。如有任何错误,请联系我们。 引导 对于引擎,请检查 Hyper-V 是否已正确启用,以及您是否在另一个没有嵌套虚拟化的虚拟机中。

通过 Docker Desktop 界面,您可以查看容器的 CPU 和内存使用情况。您可以从 Hub 下载镜像,通过集成搜索启动容器,并且几乎无需使用命令行即​​可进行各种操作。然而,代价是这一切完全依赖于 Hyper-V 的硬件虚拟化。

Docker Desktop 在 Windows 上的要求以及在不使用虚拟化的情况下的局限性

根据设计,Windows 版 Docker Desktop 需要启用虚拟化功能。无论您是使用 Hyper-V 还是设置带有 Linux 内核的小型 WSL2 环境,此要求并非随意:Linux 容器需要 Linux 内核,而在 Windows 上,您只能通过虚拟机来提供 Linux 内核。

在 Windows 10 上安装 Docker Desktop 的典型最低要求 它们包括:

  • 带 SLAT 的 64 位 CPU 并启用了硬件虚拟化支持。
  • 至少4 GB RAM 这样系统和容器才能“呼吸”。
  • Windows 10 家庭版、专业版或企业版或同等的 Windows 11。
  • 20 GB 或更多磁盘空间 包括工具本身、图像和体积。
  • Hyper-V 或 WSL2 根据 Windows 版本激活。

在 Windows 10 家庭版上,您只能将 Docker Desktop 与 WSL2 后端一起使用。由于不包含完整的 Hyper-V 功能,专业版和企业版用户可以选择,但目前 WSL2 通常是最灵活的选择,并且与开发环境的集成度最高。

如果您没有可用的或已启用的硬件虚拟化功能。情况变得更加复杂:Docker Desktop 无法正常启动,即使尝试一些变通方法,也违背了该工具的默认设计。在这种情况下,通常的解决方案是使用另一台机器、远程 Linux 服务器,或者至少使用云虚拟机。

  5 个最佳英语学习项目

将 Docker 和 WSL2 与 Visual Studio Code 和远程容器集成

一旦您运行了容器(无论是使用 WSL2 上的 Docker Engine 还是 Docker Desktop)最便捷的开发方式通常是使用 Visual Studio Code 及其远程环境扩展。

第一步是在 VS Code 中安装“WSL”扩展。此扩展程序允许您直接在 VS Code 中打开位于 Linux 发行版(例如 WSL2 中的 Ubuntu)上的文件夹,而无需担心路径、权限或不兼容的二进制文件等问题。

同时安装“Dev Containers”扩展有了它,你就可以在 Docker 容器内打开你的项目,并将该容器作为你的完整开发环境:依赖项、Python 版本、Node、.NET 等全部封装在一起。

最后,为 VS Code 添加“Docker”扩展。 能够通过编辑器自身的界面,利用侧边栏和上下文命令来管理镜像、容器、日志和部署。

典型的工作流程是将项目克隆到您的 WSL2 发行版上。,例如:

git clone https://github.com/<usuario>/mi-proyecto.git
cd mi-proyecto

然后,启动 VS Code 并指向项目文件夹。 搭配:

code .

在 VS Code 命令面板(Ctrl+Shift+P)中,选择“开发容器:在容器中重新打开”。 这样,项目就会在由配置定义的 Docker 容器内重新打开。 .devcontainer如果不存在,该扩展程序将根据项目类型(Python、Node、.NET 等)建议模板。

容器构建并运行后,您将拥有一个干净且可复现的开发环境。有了它,您可以进行调试、运行测试、启动开发服务器,并在 Windows 浏览器中打开它,就像打开本地应用程序一样。

常见问题及解决方法

如果您曾经尝试过 Docker for WSL 的预览版本您可能有一个名为 Docker 上下文的 wsl 该方法已经过时,并且可能会产生诸如“打开 //./pipe/docker_wsl:系统找不到指定的文件”之类的错误。

要检查可用上下文,请运行:

docker context ls

如果你看到一个叫 wsl您可以完全放心地删除它。 使用:

docker context rm wsl

另一个经常令人头疼的问题是,在使用 WSL2 时,如何找到 Docker 存储数据的位置。你通常会看到类似这样的内容:

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

要通过 Windows 文件资源管理器浏览它们,请点击此处。在 WSL 发行版中打开终端并运行:

explorer.exe .

如果您导航到该路线 \\wsl\<Distro>\mnt\wsl (替代 <Distro> 例如,用他们的真实姓名。 Ubuntu-24.04这样,您应该能够看到 Docker Desktop 存储镜像层和卷的文件夹。

Docker Desktop 无法启动或“卡住”时几乎总是与以下几点之一有关:BIOS 中禁用虚拟化、Hyper-V 服务损坏、WSL2 过时,或者与其他也想控制 VT-x/AMD-V 的虚拟化工具发生冲突。

如果你的硬件不支持硬件虚拟化该怎么办

如果在查看 BIOS 和文档后,您发现您的计算机实际上不支持硬件虚拟化可能性大大减少,尤其是在 Windows 系统上,Docker Desktop 将不再是一个可行的选择。

在这种情况下,合理的解决方案是依靠另一台机器或云。您可以在本地网络上使用小型 Linux 服务器,也可以在廉价云服务提供商处使用实例,甚至可以使用支持 VT-x/AMD-V 的新款笔记本电脑。从您的 Windows 计算机,您可以通过以下方式连接: SSH的 然后在那里使用 Docker Engine。

您也可以使用非常老旧的工具或实验性配置,走“软件”虚拟化路线。然而,性能会很差,稳定性也令人怀疑。它或许适用于非常基础的学习环境,但对于任何稍微严肃一点的用途,最好不要依赖这种解决方案。

简而言之,如果你的 GPU 性能不错,但你的 CPU 不支持虚拟化,那么你就麻烦了。您可以继续使用本地开发工具,并将 Docker 和容器留给远程环境。虽然不如本地环境方便,但至少您可以拥有一个兼容且易于维护的环境。

在 Windows 系统上,如果不启用硬件虚拟化,搭建一个像样的 Docker Desktop 环境会受到该工具设计以及虚拟机中必须运行 Linux 内核的严重限制。然而,通过结合 WSL2、Linux 上的原生 Docker Engine、与 Visual Studio Code 的集成,以及在硬件允许的情况下使用 Hyper-V 或 WSL2 作为 Docker Desktop 后端,即使在家用电脑上,您也可以拥有一个强大、灵活且相当轻量级的容器环境,前提是您认为硬件虚拟化不再是可选的,而实际上是一个基本要求。