1. 检查系统要求

操作系统:Windows 11 64位:企业版、专业版或教育版23H2(版本22631)或更高。可以在电脑设置中查看Windows系统规格,并进行Windows更新,进行版本号的升级。此处为Windows11 家庭版和专业版25H2。

LanmanServer:必须启用Windows Server服务(LanmanServer),并将其启动模式设置为自动。Windows 的 SMB 文件共享服务,Docker Desktop 挂载本地目录、WSL 文件共享都依赖它,所以安装 Docker 时会强制要求启用。
手动开启:服务管理器(计算机管理-服务和应用程序)-服务-Server,双击打开属性面板,设置启动类型为自动。

虚拟化启用:Docker 依赖虚拟化技术,需要确保 BIOS 中已启用虚拟化

Docker:安装 Docker Desktop(4.78.0)

tips:关于系统需求的更多信息可查看官方文档Windows版Docker Desktop的系统要求

2. 安装WSL2

Windows Linux子系统(WSL)2 是由 Microsoft 构建的完整 Linux 内核,允许 Linux 发行版在不管理虚拟机的情况下运行。在 WSL 2 上运行 Docker Desktop 时,用户可以利用 Linux 工作空间,同时避免维护 Linux 和 Windows 构建脚本。此外,WSL 2 还改进了文件系统共享、更快的冷启动时间以及动态资源分配。

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 借助适用于 Linux 的 Windows 子系统(WSL),开发人员可以安装 Linux 分发版(如 Ubuntu),并在 Windows 上直接使用 Linux 应用程序、实用工具和 Bash 命令行工具(未经修改),无需传统虚拟机或双包设置的开销。

前置要求:

  • 必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装任何 Linux 分发版。
  • 安装 WSL 2 之前,必须启用 虚拟机平台 可选功能。 计算机将需要虚拟化功能才能使用此功能。

手动开启:控制面板→程序→启用或关闭Windows功能→勾选「适用于Linux的Windows子系统」和「虚拟机平台」,确定后重启电脑。

注意:为简单起见,我们通常建议使用 wsl--install 安装适用于 Linux 的 Windows 子系统,但如果运行的是较旧的 Windows 版本或 Windows Server Core,则可能不受支持 。我在使用wsl --install命令的过程中一直遇到“无法与服务器建立连接”错误,参考了wsl官方文档。wsl官方文档提供手动安装步骤,在这里我用的是wsl_update_x64.msi包安装,一直遇到问题“”适合于linux的windows子系统必须更新到最新版本才能继续" WSL 的手动安装步骤 | Microsoft Learn。解决方法是去官方WSL GitHub发布页面,下载wsl.2.7.8.0.x64.msi。

WSL验证:

在管理员模式下打开PowerShell或Windows命令提示符,输入以下命令:

wsl --version

如果没有显示版本详情,你很可能正在使用WSL的收件箱版本。该版本不支持现代功能,必须使用 wsl--update 更新(这一点非常重要!!!否则后续docker引擎会一直启动失败)。

tips:关于WSL安装的更多信息可查看WSL:验证与设置

3. 安装Docker

访问 Docker 官网 下载适合您操作系统的版本(直接最新版本即可)。

1. 下载注意事项:

  1. 在勾选配置时勾选Per-user即可(官方推荐),适合个人自用、普通开发学习,默认支持的容器后端就是WSL2,无需管理员密码。
  2. 如果C盘空间不够,可以更改安装位置,默认\AppData\Local\Programs\DockerDesktop。此处我修改了Disk image location(磁盘镜像位置),默认是在\AppData\Local\Docker\wsl,我在E盘新建docker_data文件夹,最终修改位置为E:\docker_data\DockerDesktopWSL

2. 验证Docker安装

在终端或 PowerShell 中运行以下命令:

docker --version 
//如果显示 Docker 版本信息,说明安装成功。

3. 安装Linux发行版

打开 PowerShell 并运行以下命令,在安装新的 Linux 分发版时将 WSL 2 设置为默认版本:

wsl --set-default-version 2

安装Linux发行版一般建议使用命令wsl --install -d Ubuntu,使用wsl命令安装默认安装最新版本,此处安装的是 Ubuntu 26.04 LTS 。但是如果跟上文一样无法连接服务器,可以手动下载,WSL 的手动安装步骤 | Microsoft Learn,我手动安装的是 Ubuntu 22.04.1 LTS 。第一次进入Ubuntu需要设置账号名和密码。

4. 验证Docker Desktop 与 WSL 2 集成

在 Windows 上,Docker Desktop 默认与 WSL 2 集成。打开 Docker Desktop WSL 2

手动查看:Docker Desktop --设置--资源--使用基于 WSL 2 的引擎

Docker Desktop  安装两个专用内部 Linux发行版 docker desktop 和docker-desktop-data.第一个 (docker desktop) 用于运行 Docker 引擎 (dockerd),第二个 ( docker-desktop-data) 存储容器和镜像。两者都不能用于一般开发。Windows 上的 Docker Desktop WSL 2 后端_Docker中文网

因此,如果想在 WSL 中使用 Docker,不能通过 WSL 调用 Docker 命令。

wsl docker --version
//在 WSL 中运行 docker --version 命令

上面的用法会有报错“请勿在 docker-desktop WSL 发行版中使用 docker CLI”,

报错原因就是docker-desktop 和 docker-desktop-data 是 Docker Desktop 自动创建的内部专用 WSL 发行版,仅用于运行 Docker 后端服务,不支持用户直接进入执行 docker 命令。

在终端或 PowerShell 中直接运行docker命令即可,Docker Desktop 会自动接管,无需进入任何 WSL 环境。或者进入第三方 WSL 发行版(如 Ubuntu)中执行docker命令,因为我们上文已经在Docker Desktop中开启WSL集成。

5. 配置docker国内镜像源

Docker官方镜像源在国外,国内下载镜像很慢甚至失败。

手动设置:Docker Desktop --设置--Docker Engine,在json文件中加入"registry-mirrors"数组,我用的是"https://docker.1ms.run"地址。

此时尝试拉取镜像docker run hello-word,如果在Docker Desktop的容器列表中有hello-world镜像,至此,我们成功安装了docker,接下来可以开始项目开发部署,Introduction | Docker Docs

4. 常见问题总结

1.「 localhost代理未镜像到 WSL,NAT 模式不支持」警告

原因说明: WSL 2 默认使用 NAT 网络模式,WSL 子系统与 Windows 主机处于独立的网络命名空间,因此 Windows 上配置的localhost代理无法直接同步到 WSL 内,就会弹出此提示。

该提示只是警告,不影响 Docker Desktop 本身的基础使用;仅当你需要在 WSL 子系统内走代理联网时才需要处理。如果不想看到该提示,关闭梯子即可。

  • Docker Desktop 拉取镜像的代理不需要在 WSL 里配置,直接在 Docker Desktop 设置的 Resources → Proxies 中配置即可。
  • 如果你不需要在 WSL 子系统内使用代理,第二条警告可以直接忽略,不影响 Docker 正常使用。

2. .「 \pipe\dockerAPIProxyControl proxyControl 」 Docker Desktop 正在尝试通过命名管道与后端服务通信,但没有成功启动 Docker 引擎。

命名管道通信失败:Docker Desktop 与后端服务之间的命名管道通信可能存在问题。WSL 集成问题:如果 Docker Desktop 使用 WSL 2 作为后端,WSL 配置问题可能导致启动失败。WSL没有配置成功,必须在输入wsl --vesion命令的时候有版本信息才算成功。

参考资料:

为升级 Windows 11 准备就绪 - Microsoft 支持

在 Windows 上安装 Docker Desktop_Docker中文网

Install Docker Desktop on Windows | Docker Docs

Windows Subsystem for Linux 文档 | Microsoft Learn

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐