2302 字
12 分钟
Windows 通过 WSL2 安装 Docker Desktop 以及离线安装说明

一、说明#

Docker 能够无需改动本地系统、无需安装各类环境依赖即可运行程序,其原生适配 Linux 运行时几乎不存在性能损耗,这方便很多用户进行软件开发以及部署服务。

但绝大多数用户日常使用的都是 Windows,单独重装 Linux 跑 Docker 又会割裂 Windows 生态,Docker Desktop 的推出恰好解决了这一痛点,让 Windows 用户也能便捷使用容器能力。

二、运行环境设置#

Windows 平台的 Docker Desktop 运行依托 WSL2 Linux 子系统实现,WSL2 的底层虚拟化能力依赖的是 Windows 的 Hyper-V 组件。

因此技术上离不开 Hypervisor 虚拟化底层支持,但部署时无需完整开启 Hyper-V 全套虚拟机功能。 仅启用轻量化的虚拟机平台组件,就能满足 WSL2 与 Docker 的运行需求,Windows 家庭版也可通过该方式正常部署。

因此在 Windows 上安装 Docker Desktop 需要满足以下条件

  • 需确保 Windows 版本满足最低要求:
    • Windows 10 64 位: 22H2(Build 19045)及以上
    • Windows 11 64 位: 22H2(Build 22621)及以上
  • 需确保在 BIOS 中启用了 CPU 虚拟化(Intel VT-x / AMD-V)
  • 需确保启用了以下 Windows 功能:
    • 适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux)
    • 虚拟机平台(Virtual Machine Platform)
  • 需确保已安装并启用 WSL 2(包含 WSL2 Linux 内核)

操作步骤如下:

  1. 设置 → 系统 → 系统信息 → Windows 规格 中查看当前系统版本
    若系统版本低于要求需要先完成系统升级。该要求属于系统功能层面的硬性限制,
    低版本系统无法正常使用 WSL2 及 Docker Desktop

  2. 任务管理器 → 性能 → CPU 中查看虚拟化是否处于已启用状态
    如果虚拟化未开启需要重启计算机并进入 BIOS/UEFI 设置界面,启用硬件虚拟化技术(如 Intel VT-x 或 AMD-V),否则 WSL2 及 Docker Desktop 无法正常运行

  3. 控制面板 → 程序和功能 → 启用或关闭 Windows 功能 中查看Windows 功能是否处于已启用状态

    • 适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux)
    • 虚拟机平台(Virtual Machine Platform)
    TIP

    这两项属于 Windows 内置可选系统组件,无需联网下载安装包

三、安装 WSL2 适用于 Linux 的 Windows 子系统#

在启用适用于 Linux 的 Windows 子系统功能后,系统仅会部署基础 WSL 配套组件。
但该预装组件版本普遍偏低,不满足 Docker Desktop 的运行要求。

因此启用功能后,需要手动升级 WSL 内核,在线升级 PowerShell 命令如下:

Terminal window
wsl --update
TIP

若网络环境较差或无法在线更新可前往微软 WSL 发布仓库,
下载对应系统架构的 .msi 离线安装包手动更新:https://github.com/microsoft/WSL/releases
通过离线安装包升级可直接将 WSL 内核更新至最新版本,版本号通常高于 Windows 系统推送版本。

升级完成后输入以下命令设置默认 WSL 版本并查看信息

Terminal window
wsl --set-default-version 2
wsl -v

示例输出如下:

WSL 版本: 2.6.2.0
内核版本: 6.6.87.2-1
WSLg 版本: 1.0.71
MSRDC 版本: 1.2.6353
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows: 10.0.19045.6691

四、安装 Linux 发行版#

开启 WSL 基础组件并完成内核升级后,系统仅具备 WSL 运行能力。
还需要安装 Linux 发行版作为 Docker 的运行环境,即 Linux 环境。

4.1 命令行安装#

以默认 Ubuntu 为例,使用 PowerShell 执行以下命令即可完成安装:

Terminal window
wsl --install -d Ubuntu

若希望安装其他版本,可先列出当前系统支持在线安装的 Linux 发行版列表:

Terminal window
wsl --list --online

示例输出如下:

以下是可安装的有效分发的列表。
使用“wsl.exe --install -d <Distro>”安装。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-16.0 openSUSE Leap 16.0
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0 SUSE Linux Enterprise 16.0
kali-linux Kali Linux Rolling
Debian Debian GNU/Linux
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
archlinux Arch Linux
FedoraLinux-43 Fedora Linux 43
FedoraLinux-42 Fedora Linux 42
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6

根据需要选择合适的发行版版本进行安装,例如安装 Debian:

Terminal window
wsl --install -d Debian

4.2 Microsoft Store 应用市场安装#

打开 Microsoft Store,搜索相应 Linux 发行版进行安装

4.3 使用 AppxBundle 文件进行安装#

可通过 AppxBundle 离线安装包替代 Microsoft Store 安装,但但其依赖解析机制与 Microsoft Store 在线安装存在差异。

  1. 获取 AppxBundle 安装包

    通过 Microsoft Store 获取 Linux 发行版的链接,以 Ubuntu 发行版为例,商店链接为:
    https://apps.microsoft.com/detail/9PDXGNCFSCZV?hl=neutral&gl=CN&ocid=pdpshare

    https://store.rg-adguard.net 中输入商店链接,点击最大的文件下载。

    TIP

    该工具是第三方 Microsoft Store 解析站点,非微软官方渠道。 仅用于无法访问 Microsoft Store 时的替代下载方式,生产环境建议优先使用 Microsoft Store

  2. 使用 AppxBundle 安装

    进入 AppxBundle 文件所在目录,使用 PowerShell 执行以下命令进行安装:

    Terminal window
    Add-AppxPackage ./Ubuntu_2404.1.0.0_x64.AppxBundle

    如果使用 PowerShell 无法安装可将其解压,在解压文件中找到对应 CPU架构 的 .appx 文件
    以 x64 架构为例,使用 PowerShell 执行以下命令进行安装:

    Terminal window
    Add-AppxPackage ./Ubuntu_2404.1.68.0_x64.appx

    不建议通过资源管理器双击 .appx 文件进行安装,因为无法获得明确的错误信息并进行排错。

    安装完成后,可通过以下命令确认发行版状态:

    Terminal window
    wsl -l -v

    示例输出:

    NAME STATE VERSION
    Ubuntu Stopped 2

五、启动 WSL 并初始化配置#

完成 Linux 发行版安装后,还需进行基础配置优化使用体验:

设置默认发行版:

Terminal window
wsl --set-default Ubuntu

执行以下命令进入子系统:

Terminal window
wsl

根据页面提示填写用户名、登录密码,完成系统初始化,即可正常使用该 Linux 发行版。

六、安装 Docker Desktop#

  1. 下载并安装 Docker Desktop

    访问 Docker 官网下载 Docker Desktop 安装包并进行安装:https://www.docker.com/products/docker-desktop

    在安装的过程中务必勾选 Use WSL Instead Of Hyper-VUse WSL 2 based engine 选项,
    确保 Docker Desktop 可以使用 WSL2 作为容器运行引擎。

  2. 首次启动初始化

    安装完成后启动 Docker Desktop,程序会自动生成 docker-desktop 专用 WSL 运行环境,
    全程复用系统已部署的 WSL2 内核,无需额外联网下载系统文件。

  3. 验证运行状态

    打开 PowerShell / WSL 终端,执行如下命令校验部署是否生效:

    Terminal window
    docker info

    正常输出系统、引擎信息即代表 Docker Desktop 部署完成。

七、离线安装 Docker Desktop#

离线安装 Docker Desktop 的核心是离线安装 WSL2 运行环境,即 WSL 内核以及 Linux 发行版。

相关运行环境前置配置与在线安装要求完全一致,需要确认系统版本满足最低要求、 BIOS 虚拟化已开启,同时启用 适用于 Linux 的 Windows 子系统虚拟机平台 两项 Windows 组件。

7.1 离线安装文件准备#

7.2 WSL 备份方法安装#

联网设备部署好 Linux 发行版后,可将完整系统导出为 tar 镜像,用于本地备份、跨设备迁移,
若离线环境需要预装开发工具、依赖环境,可在导出前提前完成软件部署,再导出镜像,
离线机器导入该镜像后系统环境与联网端完全一致,以此实现 Linux 发行版离线安装。

  1. 导出镜像前,打开 PowerShell 执行命令停止目标发行版运行:

    Terminal window
    wsl --terminate <发行版名称>
    # 示例:停止 Ubuntu
    wsl --terminate Ubuntu
  2. 执行镜像文件导出命令:

    Terminal window
    wsl --export <发行版名称> <导出的 tar 文件路径>
    # 示例:将 Ubuntu 导出为当前目录下的 Ubuntu.tar
    wsl --export Ubuntu ./Ubuntu.tar
  3. 将导出的 tar 镜像拷贝至离线设备,执行导入操作
    该导入方式可自定义虚拟磁盘存放路径,规避在线安装默认占用 C 盘大量存储空间的问题。
    已在线安装的机器,也可通过该方式迁移虚拟磁盘路径,进而节省 C 盘空间。

    TIP

    离线设备需要先更新 WSL 内核并且 WSL 可用

    Terminal window
    wsl --import <导入后发行版名称> <预创建的磁盘存放路径> <tar镜像路径> --version 2
    # 示例:创建目录并导入 Ubuntu.tar 至 `D:/WSL/Ubuntu`
    mkdir D:/WSL/Ubuntu
    wsl --import Ubuntu-offline D:/WSL/Ubuntu ./Ubuntu.tar --version 2
  4. 导入完成后,使用 PowerShell 执行以下命令校验发行版状态:

    Terminal window
    wsl -l -v

    示例输出:

    NAME STATE VERSION
    Ubuntu-offline Stopped 2

7.3 使用 .AppxBundle 文件进行安装#

该操作方法与 4.3 使用 AppxBundle 文件进行安装 操作完全一致。

7.4 安装 Docker Desktop#

确保 Linux 发行版安装完成后即可完整Docker Desktop,安装的过程中务必勾选 Use WSL Instead Of Hyper-VUse WSL 2 based engine 选项

安装完成后打开 PowerShell / WSL 终端,执行如下命令校验部署是否生效:

Terminal window
docker info

正常输出系统、引擎信息即代表 Docker Desktop 离线部署完成。

Windows 通过 WSL2 安装 Docker Desktop 以及离线安装说明
https://www.self4m.com/posts/windows-install-docker-desktop-with-wsl2-and-offline-install/
✍️作者
Self4m
📅发布于
2025-10-21
©️许可协议
CC BY-NC-SA 4.0

商业用途必须事先获得作者授权;
非商业用途可以使用,但必须注明出处;
若有改编需采用相同许可协议发布。