手把手教你在 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.mzph.cn/news/935977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强化学习的数学原理-04章 策略评估与策略优化 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

HDU1204糖果大战 题解

HDU1204糖果大战 题解HDU1204 的题解。这篇题解写的很不错,但是一些小细节我还是太看不懂了,所以补充一下。 【首先得注意到是胜者从败者中拿走一颗糖。】 首先 simple 地设 \(f_i\) 表示当 S 有 \(i\) 颗糖的时候获…

吴恩达深度学习笔记----系列文章

吴恩达深度学习笔记----系列文章随笔分类 - 吴恩达深度学习笔记吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础(五)吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础(四)吴恩达深…

AI重构项目管理:2025年工具生态的三大颠覆性趋势

AI重构项目管理:2025年工具生态的三大颠覆性趋势 当微软Project 2025预览版首次演示AI自动调整2000人天项目计划时,全球CTO们意识到项目管理工具的进化已进入新纪元。据Gartner最新产业图谱显示,AI驱动的智能项目管…

跨数据与任务的可扩展图像分割技术

本文介绍了一种新型混合查询变换器架构,通过融合可学习查询和条件查询来提升图像分割模型的跨任务迁移能力。该方法利用合成数据解决标注数据稀缺问题,在多个数据集上的实验表明,同时扩展训练数据量和任务多样性可显…

实用指南:大语言模型LLM解决AI幻觉方法的深度分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年10月变位机厂家最新推荐排行榜,焊接变位机,机器人变位机,重型变位机,轻型变位机公司推荐!

2025年10月变位机厂家最新推荐排行榜,焊接变位机,机器人变位机,重型变位机,轻型变位机公司推荐!随着工业自动化和智能制造的快速发展,变位机在各个行业中的应用越来越广泛。无论是焊接、装配还是检测,变位机都能…

2025年中国开发者代码管理平台选型全景报告:从本土化适配到全球化协作

2025年中国开发者代码管理平台选型全景报告:从本土化适配到全球化协作 随着数字化转型进程加速,代码管理平台已成为软件开发生态的核心基础设施。在中国特殊的网络环境和开发者生态下,如何选择适配不同发展阶段的技…

ZKsync Baby Alpha里程碑达成:zkEVM技术架构全面解析

本文详细介绍了ZKsync 2.0(现名zkSync Era)达成Baby Alpha里程碑的技术进展,包括zkEVM架构升级、动态费用机制、项目注册系统、证明生成与验证等核心技术特性,以及未来路线图中的Layer3概念验证和去中心化计划。Ba…

【技术干货】Vaadin Flow vs Hilla:你该选择哪个Java Web框架?

在现代Web开发中,前后端分离已成为主流趋势,但对于许多以 Java 为核心技术栈的企业来说,如何高效地构建现代化Web应用依然是一个挑战。今天我们为大家介绍的,是由 Vaadin 平台 提供的两种开源全栈Web框架 —— Vaa…

使用CVX工具箱求解凸优化问题示例

1. 线性规划(LP)示例 问题描述: 最小化目标函数 \(c^Tx\),满足约束 \(Ax≤b\)和 \(x≥0\)。 MATLAB代码: c = [-1; -2]; % 目标函数系数 A = [1, 1; 2, 1; -1, 1]; % 约束矩阵 b = [4; 5; 2]; …

深入解析:【MySQL✨】MySQL 入门之旅 第十一篇:常见错误排查与解决方案

深入解析:【MySQL✨】MySQL 入门之旅 第十一篇:常见错误排查与解决方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

图解直接映射(Direct mapped)、全相联(Fully-associative)和组相联(Set-associative)cache缓存基本原理

图解直接映射(Direct mapped)、全相联(Fully-associative)和组相联(Set-associative)cache缓存基本原理https://blog.csdn.net/luolaihua2018/article/details/132647066

2025年10月家纺摄影公司最新推荐榜单,专业拍摄与创意设计一站式服务首选!

2025年10月家纺摄影公司最新推荐榜单,专业拍摄与创意设计一站式服务首选!随着家纺行业的快速发展,高质量的家纺摄影需求日益增长。优秀的家纺摄影不仅能够提升品牌形象,还能有效促进产品销售。为了帮助筛选家纺摄影…

彩笔运维勇闯机器学习--KNN算法

前言 彩笔运维勇闯机器学习:KNN算法,它也是分类中的一种 开始探索 scikit-learn import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.preproc…

FastReport文本框根据高度缩小字体

我尝试使用报表自带的设置,AutoShrink = FontSize​​ 并设置 AutoShrinkMinSize=10避免字体过小。 但这种方法只会在文本行超出文本框宽度时才会触发字体缩小,无法满足在不触及宽度时,多次换行导致高度不够的情况下…

JAVA工具包

1、JSON数据结构处理 FastJSON、Gson、Jackson工具包 2、在线API接口文档生成 (1)knife4j在线文档 (2)Swagger生成API文档 3、参数校验 (1)Hibernate Validator (2)javax.validation 注解式参数校验 (3)Apac…

2025 年蝶阀厂家最新推荐:全金属 / 高压 / 美标 / 双偏心 / 三偏心等各类蝶阀优质厂家榜单及选择指南

在工业流体控制体系中,蝶阀作为关键的截断与调节设备,其品质直接决定着生产系统的安全与效率。当前蝶阀市场品牌繁杂,部分产品存在密封性能差、抗恶劣工况能力弱等问题,导致企业维修成本攀升、生产频繁中断,甚至引…

基于MATLAB的一维大地电磁反演程序实现

1. 核心方法概述 一维大地电磁反演通过建立地下电性结构与电磁响应的数学关系,从观测数据反演地下电阻率分布。常用方法包括:Bostick反演:基于频域解析解的快速反演方法 Occam反演:以最小模型复杂度为目标的最优化…

DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(一)

DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(一)DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程…