当前位置: 首页 > news >正文

手把手教你在 Windows 安装 Docker Desktop

简介

本文是一份零基础友好、步骤化的实操教程,旨在帮助初学者和高级开发者快速掌握在 Windows 系统中基于 WSL 2(适用于 Linux 的 Windows 子系统,版本 2)安装 Docker Desktop 的方法,并学会使用 VS Code 在远程容器中开发应用。

Linux 系统的 docker & docker compose 安装参考链接:Linux Docker & Docker Compose 一键安装

通过本教程,你将实现:

  • 在 Windows 上搭建支持 Linux 容器的 Docker 开发环境
  • 配置 WSL 2 与 Docker Desktop 的深度集成
  • 使用 VS Code 远程连接容器,完成代码编写、调试和运行
  • 解决安装和使用过程中的常见问题

一、先决条件

在开始安装前,请确保你的环境满足以下要求,避免后续操作报错。

1.1 系统与硬件要求

类型 具体要求
WSL 版本 1.1.3.0 或更高(可通过 wsl --version 命令检查)
Windows 系统 - Windows 11:家庭版/专业版/企业版/教育版
- Windows 10:22H2(内部版本 19045)及以上(家庭版/专业版/企业版/教育版,21H2(19044)为最低支持版本)
硬件 - 64 位处理器(需支持二级地址转换(SLAT)
- 至少 4GB 系统内存
虚拟化 在 BIOS/UEFI 中启用硬件虚拟化(不同主板型号操作不同,可参考主板说明书)

提示:若 Windows 版本过低,可通过「设置 → Windows 更新」升级(链接:ms-settings:windowsupdate)。

1.2 已安装软件

  1. WSL 及 Linux 分发版
    需提前安装 WSL 并配置 Linux 分发版(如 Ubuntu、Debian),且确保分发版使用 WSL 2 模式。
    • 安装教程:安装 WSL 并设置 Linux 用户名和密码
    • 检查 WSL 模式:打开 PowerShell 或 Windows 终端,执行命令 wsl -l -v,若分发版的「VERSION」列显示「1」,需执行 wsl --set-version <Distro> 2(将 <Distro> 替换为你的分发版名称,如 Ubuntu-22.04)切换为 WSL 2。
  2. 可选软件(推荐安装,提升体验)
    • Visual Studio Code(VS Code):用于远程容器开发、代码编辑和调试。
    • Windows 终端:可同时管理 WSL 终端、PowerShell 等,支持自定义界面。

1.3 其他准备

  1. Docker ID(可选):用于登录 Docker Hub 下载镜像,注册链接:Docker Hub 注册。
  2. 了解许可协议:Docker Desktop 免费供个人和小型企业使用,其他场景需参考 Docker Desktop 许可协议。

二、安装 Docker Desktop

Docker Desktop 是 Windows 上的官方 Docker 工具,支持 WSL 2 后端,可原生运行 Linux 容器,性能优于传统虚拟化方案。

步骤 1:下载 Docker Desktop

访问官方下载链接,获取最新版 Docker Desktop 安装包:
Docker Desktop 下载(支持 WSL 2)

步骤 2:运行安装程序

  1. 双击下载的 .exe 安装包,进入安装向导,默认选项已适配 WSL 2,无需修改,直接点击「OK」开始安装。
  2. 安装过程中会自动启用 Windows 所需的组件(如 Hyper-V、容器功能),若提示重启,点击「重启」完成配置。

步骤 3:配置 WSL 2 集成

  1. 从 Windows 「开始菜单」启动 Docker Desktop,等待启动完成(任务栏隐藏图标中出现 Docker 图标,无报错提示)。
  2. 右键点击任务栏中的 Docker 图标,选择「设置」(如图 1)。
    图 1:Docker Desktop 任务栏图标(右键打开设置)
  3. 在设置界面中,进入「常规」选项卡,确保「使用基于 WSL 2 的引擎」已勾选(如图 2),若未勾选则勾选后点击「应用并重启」。
    图 2:Docker Desktop 常规设置(启用 WSL 2 引擎)
  4. 进入「资源 → WSL 集成」选项卡,在「启用集成的 WSL 发行版」中,勾选你需要集成的 Linux 分发版(如 Ubuntu-22.04,如图 3),点击「应用」保存配置。
    图 3:Docker Desktop WSL 集成设置(选择分发版)

步骤 4:验证 Docker 安装

  1. 打开你的 Linux 分发版终端(如 Ubuntu 终端,或通过 Windows 终端切换到 WSL 标签页)。
  2. 执行以下命令,检查 Docker 版本是否正常显示:
    docker --version
    
    成功结果示例:Docker version 26.0.0, build 2ae903e
  3. 执行「Hello World」测试镜像,验证 Docker 能否正常拉取和运行容器:
    docker run hello-world
    
    成功结果:终端会输出 Docker 欢迎信息(包含「Hello from Docker!」),说明容器运行正常。

常用 Docker 命令提示

命令 用途
docker 列出所有 Docker CLI 可用命令
docker <COMMAND> --help 查看特定命令的帮助文档(如 docker run --help
docker image ls --all 列出本地所有 Docker 镜像
docker container ls --all 列出本地所有容器(docker ps -a 为简写,不加 -a 只显示运行中容器)
docker info 查看 Docker 系统信息(含 WSL 2 资源配置、镜像仓库等)

三、使用 VS Code 在远程容器中开发

通过 VS Code 的「远程容器」扩展,可直接在 Docker 容器中编写、调试代码,避免本地环境依赖冲突。以下以 Python Django 项目为例,演示完整流程。

步骤 1:安装必要的 VS Code 扩展

打开 VS Code,在「扩展」面板(Ctrl+Shift+X)中搜索并安装以下 3 个扩展:

  1. WSL 扩展:实现 VS Code 与 WSL 的连接,链接:Remote - WSL
  2. 开发容器扩展:支持在容器中打开项目,链接:Remote - Containers
  3. Docker 扩展:提供容器管理、镜像构建等功能,链接:Docker

步骤 2:准备示例项目(可选,也可使用自己的项目)

我们以 GitHub 上的 helloworld-django 项目为例(Python Django 入门项目),步骤如下:

  1. 打开 Linux 分发版终端,执行以下命令克隆项目到 WSL 文件系统(务必存储在 WSL 文件系统,避免性能问题):

    git clone https://github.com/mattwojo/helloworld-django.git
    

    提示:WSL 文件系统路径为 \\wsl\(如 \\wsl\Ubuntu-22.04\home\<你的用户名>\),若将项目存放在 Windows 本地路径(如 C:\),会导致文件访问速度大幅下降。

  2. 进入项目目录:

    cd helloworld-django
    

步骤 3:在 VS Code 中打开项目

  1. 在项目目录下,执行以下命令,通过 WSL 扩展打开 VS Code:
    code .
    
  2. 检查 VS Code 左下角的「远程指示器」,若显示「WSL: <你的分发版名称>」(如图 4),说明已成功连接到 WSL。
    图 4:VS Code WSL 远程指示器

步骤 4:配置开发容器

  1. 在 VS Code 中打开「命令面板」(Ctrl+Shift+P),输入并选择「开发者容器:重新以容器方式打开」(如图 5)。

    若项目未在 WSL 中打开,可选择「开发者容器:在容器中打开文件夹...」,然后通过 \\wsl\ 路径选择 WSL 中的项目文件夹。
    图 5:VS Code 开发容器命令

  2. 选择项目文件夹(如 \\wsl\Ubuntu-22.04\home\<你的用户名>\helloworld-django,如图 6),点击「选择文件夹」。
    图 6:选择 WSL 中的项目文件夹

  3. 由于项目中无预设容器配置,VS Code 会提示选择容器定义,根据项目类型选择(本例为 Django 项目,选择「Python 3」,如图 7)。
    图 7:选择 Python 3 容器配置

  4. VS Code 会自动构建 Docker 镜像并启动容器,构建完成后,项目中会新增 .devcontainer 文件夹(含 Dockerfiledevcontainer.json 配置文件,如图 8),表示容器环境已就绪。
    图 8:项目中的 .devcontainer 文件夹

步骤 5:运行与调试容器应用

  1. 打开 VS Code 的「运行和调试」面板(Ctrl+Shift+D),点击「运行和调试」,选择适合项目的调试配置(本例选择「Django」,如图 9)。
    图 9:选择 Django 调试配置

  2. 按「F5」键启动调试,VS Code 会自动在容器中运行 Django 开发服务器,终端会输出「开发服务器正在 http://127.0.0.1:8000/ 启动」(如图 10)。
    图 10:容器中运行的 Django 服务器

  3. 按住「Ctrl」键并点击终端中的 http://127.0.0.1:8000/,即可在浏览器中查看运行中的 Django 应用,完成远程容器开发流程。

四、故障排除

4.1 问题 1:WSL Docker 上下文已弃用

症状

执行 Docker 命令时提示:
docker wsl open //./pipe/docker_wsl:系统找不到指定的文件连接期间出错:获取 http://%2F%2F.%2Fpipe%2Fdocker_wsl/v1.40/images/json?all=1: 打开 //./pipe/docker_wsl:系统找不到指定的文件

原因

使用了早期 Docker 预览版的「wsl」上下文,该上下文已弃用,需删除。

解决步骤

  1. 打开 Linux 终端,执行以下命令查看当前 Docker 上下文:
    docker context ls
    
  2. 若存在名为「wsl」的上下文,执行以下命令删除:
    docker context rm wsl
    
  3. 重新使用默认上下文执行 Docker 命令即可。

4.2 问题 2:找不到 Docker 映像存储文件夹

原因

Docker Desktop 在 WSL 中创建了两个隐藏文件夹存储数据,默认不显示。

解决步骤

  1. 打开 Linux 终端,执行以下命令打开 WSL 文件系统的 Windows 资源管理器:
    explorer.exe .
    
  2. 在资源管理器地址栏输入 \\wsl\<你的分发版名称>\mnt\wsl(如 \\wsl\Ubuntu-22.04\mnt\wsl),即可看到以下两个存储文件夹:
    • docker-desktop:Docker 核心组件存储
    • docker-desktop-data:Docker 镜像和容器数据存储

4.3 其他 WSL 故障排除资源

若遇到其他 WSL 相关问题,可参考官方文档:WSL 故障排除。
若需在 Windows Server 上安装 Docker,参考:入门:为容器准备 Windows Server。

五、其他学习资源

资源类型 链接与简介
Docker 官方文档 Docker Desktop + WSL 2 最佳实践:了解 Docker 与 WSL 2 集成的优化技巧。
VS Code 官方文档 选择开发环境的指南:学习如何根据项目需求选择容器/本地/WSL 环境。
VS Code 博客 在 WSL 2 中使用 Docker、在 WSL 2 中使用远程容器:深入讲解 VS Code 与 WSL、容器的结合用法。
播客 Hanselminutes:让 Docker 更贴近开发人员:了解 Docker 开发理念和最佳实践。
Docker 反馈 Docker Desktop for Windows 问题反馈:提交 Docker 安装或使用中的 Bug。

总结

通过本教程,你已掌握:

  1. 在 Windows 上基于 WSL 2 安装和配置 Docker Desktop 的完整流程;
  2. 使用 VS Code 远程连接容器,实现代码编写、调试和运行;
  3. 解决 Docker 与 WSL 集成的常见问题。

建议后续尝试将自己的项目容器化,或探索 Kubernetes 等容器编排工具,进一步提升开发效率。

http://www.hskmm.com/?act=detail&tid=29926

相关文章:

  • AI重构项目管理:2025年工具生态的三大颠覆性趋势
  • 跨数据与任务的可扩展图像分割技术
  • 2025年10月变位机厂家最新推荐排行榜,焊接变位机,机器人变位机,重型变位机,轻型变位机公司推荐!
  • 2025年中国开发者代码管理平台选型全景报告:从本土化适配到全球化协作
  • ZKsync Baby Alpha里程碑达成:zkEVM技术架构全面解析
  • 【技术干货】Vaadin Flow vs Hilla:你该选择哪个Java Web框架?
  • 使用CVX工具箱求解凸优化问题示例
  • 2025年10月家纺摄影公司最新推荐榜单,专业拍摄与创意设计一站式服务首选!
  • 彩笔运维勇闯机器学习--KNN算法
  • FastReport文本框根据高度缩小字体
  • 国产代码托管平台Gitee崛起:企业级Git自建解决方案深度解析
  • 易基因:植物作为表观遗传学研究理想模型 如何把握研究思路与应用探索|项目解析
  • 供应商协同管理系统:打破协作壁垒提升供应链效能
  • 2025年10月锅炉厂家最新权威推荐榜:高效节能与安全稳定品质之选!
  • Gitee如何重塑中国开发者的效率革命?
  • 2025 年最新推荐雕塑源头厂家排行榜:聚焦成本、定制与全国布局,助力客户精准选合作方铸铜/铸铝/仿古/校园/广场/人物雕塑厂家推荐
  • 高效办公必备:自动同步文件的工具如何选
  • 关于通过样式设置的章标题等可能出现不能完全居中的问题的解决办法
  • 2025年10月掘进机厂家最新推荐排行榜,隧道掘进机,煤矿掘进机,城市轨道掘进机公司推荐!
  • Aave 协议的最新版本
  • 2025 年国内空调机组厂家最新推荐,含冷凝热回收等多类型空调机组企业优选指南! 泳池热泵/屋顶式/海水源养殖热泵/精密机房/岗位送风空调机组厂家推荐
  • 2025 年攻丝机定制厂家最新推荐排行榜:聚焦非标异形件加工需求,精选优质品牌助力企业高效生产
  • Uniswap 入门:小白也能懂的去中心化交易所指南
  • Codeforces Round 1058 (Div. 2) A - D
  • ACE-Step音乐生成大模型:开启AI音乐创作新纪元
  • c++操纵器std::ws
  • 2025 年计数包装机厂家最新推荐榜:聚焦高精度高效能品牌,助力企业智能化生产升级全自动/种子/五金/注塑件/纽扣计数包装机厂家推荐
  • JAVA工具包
  • 2025 年蝶阀厂家最新推荐:全金属 / 高压 / 美标 / 双偏心 / 三偏心等各类蝶阀优质厂家榜单及选择指南
  • 基于MATLAB的一维大地电磁反演程序实现