Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

 🔥个人主页:北极的代码(欢迎来访)
🎬作者简介:java后端学习者
❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb
命运的结局尽可永在,不屈的挑战却不可须臾或缺!

前言:

大家好,我是代码不加冰,又到了痛苦的周一,上了一天的课,已经累瘫了,但宿舍开着空调,把晚自习逃了,还是挺惬意的,然后这里主要学习一下Docker,因为之前在看项目,或者在别的地方一直听过这个,但还是不知道具体是什么。

摘要:

本文介绍了 Docker 的概念、核心组件、与虚拟机的区别及实用优势,并基于 WSL2 环境,详细讲解 Windows 系统下 Docker Desktop 的完整安装步骤。

文中拆解镜像、容器、仓库三大核心概念,对比了 Docker 与虚拟机在虚拟化层级、资源占用、启动速度等方面的差异。

同时介绍 WSL2 技术作用,一步步演示环境配置、软件安装与初始化流程,搭配 hello-world 安装验证、Nginx 服务部署两大入门案例,附带常用容器管理命令与国内镜像源配置方案,帮助新手快速上手 Docker,掌握容器基础使用,为学习云原生、微服务等技术打好基础。

一、Docker 到底是什么

很多人第一次听到 Docker,会把它和虚拟机搞混,这里用最简单的话讲明白:

想象你要开发一个项目,本地电脑上能跑,放到服务器上就各种报错 —— 环境不一致、依赖版本冲突,这些问题都能被 Docker 解决。

二、Docker 三大核心概念

Docker 的世界围绕镜像(Image)、容器(Container)、仓库(Registry) 三大核心展开,三者关系:仓库存镜像,镜像跑容器

1. 镜像(Image):只读模板,安装包
  • 定义:镜像是只读的静态模板,包含运行应用所需的代码、运行时、库、配置文件、环境变量等所有依赖。
  • 特点

    • 只读:创建后不可修改,保证环境一致性;
    • 分层存储:UnionFS 技术实现,多层叠加,共享层复用,节省磁盘空间(如多个镜像共用同一个 Ubuntu 基础层);
    • 不可运行:镜像只是模板,不能直接跑程序。
  • 类比:镜像 =食谱,固定不变,教你怎么做菜。

2. 容器(Container):运行实例,运行中的程序
  • 定义:容器是镜像的运行实例,是独立隔离的进程空间,拥有独立的文件系统、网络、进程 ID。
  • 特点

    • 可读写:基于镜像的只读层,新增一层可写层,运行时产生的数据都存在这层;
    • 轻量级:共享宿主机内核,秒级启动(1-3 秒)、MB 级占用
    • 隔离性:通过 Namespace 实现进程、网络、文件系统隔离,容器间互不干扰;
    • 生命周期可控:可启动、停止、删除、暂停。
  • 类比:容器 =按食谱做好的菜,可食用、可操作,一个食谱(镜像)可做多个菜(容器)。

3. 仓库(Registry):镜像商店,代码仓库
  • 定义:仓库是存储和分发镜像的中心化服务,类似 GitHub 存储代码。
  • 分类

    • 公有仓库:Docker Hub(官方)、阿里云镜像仓库、腾讯云镜像仓库,提供海量免费公共镜像(如 Nginx、MySQL、Redis);
    • 私有仓库:企业内部搭建(如 Harbor、Nexus),存储私有业务镜像,保障数据安全。
  • 核心操作docker pull(拉取镜像)、docker push(推送镜像)。

4. 补充:Dockerfile(镜像构建脚本)
  • 定义:Dockerfile 是文本文件,用固定指令(如 FROM、RUN、COPY)定义镜像的构建步骤。
  • 作用代码化构建镜像,可版本控制、可复用、一键构建,避免手动配置环境出错。
  • 简单示例
# 基础镜像(FROM指定)
FROM ubuntu:22.04
# 安装依赖(RUN执行命令)
RUN apt-get update && apt-get install -y nginx
# 复制本地文件到镜像(COPY复制文件)
COPY index.html /var/www/html/
# 暴露端口(EXPOSE声明端口)
EXPOSE 80
# 启动命令(CMD容器启动后执行)
CMD ["nginx", "-g", "daemon off;"]
Docker vs 虚拟机

很多人分不清 Docker 和虚拟机,一句话总结:虚拟机是 “完整房子”,Docker 是 “共享公寓”,核心差异在虚拟化层级、资源占用、隔离性

对比维度 Docker 容器 虚拟机(VM)
虚拟化层级 操作系统级虚拟化(共享宿主机内核) 硬件级虚拟化(独立内核 + 完整 OS)
启动速度 秒级(1-3 秒) 分钟级(3-5 分钟)
资源占用 极低(MB 级,共享内核) 极高(GB 级,每个 VM 独占 CPU / 内存)
磁盘大小 镜像 MB 级,容器无额外开销 完整 OS 镜像 GB 级(如 Windows 10 约 20GB)
隔离性 进程级隔离(共享内核,隔离较弱) 硬件级隔离(完全独立,隔离极强)
性能损耗 几乎无(直接调用宿主机内核) 高(需模拟硬件 + 运行完整 OS)
适用场景 微服务、CI/CD、云原生、轻量应用 多系统共存、高安全隔离、遗留系统

 底层原理差异

  • 虚拟机:通过 Hypervisor(如 VMware、VirtualBox)模拟 CPU、内存、硬盘等硬件,每个虚拟机都要安装独立的 Guest OS(如 Windows、Linux),资源开销大。
  • Docker:基于 Linux 内核三大核心技术,共享宿主机内核,无需额外 OS:

    1. Namespace(命名空间):实现资源隔离,为容器创建独立的进程、网络、文件系统、主机名、用户空间;
    2. CGroup(控制组):限制容器资源使用(CPU、内存、磁盘 IO、网络带宽),避免单个容器占用全部资源;
    3. UnionFS(联合文件系统):实现镜像分层存储,多层只读层叠加,新增可写层,高效复用和分发。

Docker 不是虚拟机的替代品,而是互补品虚拟机适合强隔离、多系统场景;Docker 适合轻量、高效、云原生场景。


为什么选 Docker

  • 环境一致:从开发、测试到生产,镜像包含所有依赖,杜绝 “在我电脑能跑” 的问题。
  • 轻量高效:共享宿主机内核,秒级启动,资源占用极低,一台服务器可跑上千个容器。
  • 可移植性强:一次构建,随处运行,不受底层系统影响。
  • 快速部署:一行命令就能部署 Nginx、MySQL 等服务,扩容也只需复制容器。

三、安装前准备:开启 WSL2

Docker Desktop 在 Windows 上推荐使用 WSL2 后端,性能更好,也支持家庭版系统。

概念介绍

WSL(Windows Subsystem for Linux),即适用于 Linux 的 Windows 子系统,是微软推出的原生技术,允许 Windows 系统直接运行 Linux 程序,无需额外安装虚拟机或划分双系统分区。

我们本次安装使用的 WSL2 是第二代版本,搭载了完整的 Linux 内核,在运行性能、网络兼容性、文件读写能力上远优于第一代 WSL,也是目前 Windows 平台运行 Docker 的标准推荐方案


 Docker 为什么依赖 WSL2

Docker 原本诞生于 Linux 系统,底层依赖 Linux 内核的命名空间、控制组等隔离技术。 Windows 本身内核不支持 Docker 原生运行,所以提供了两种兼容方案:

  1. Hyper-V 虚拟机:老旧方案,资源占用高,Windows 家庭版还不支持;
  2. WSL2:轻量、高效、全版本兼容(Win10/Win11 家庭版、专业版都能用),也是本文采用的安装方式。

Docker Desktop 借助 WSL2 作为底层运行环境,把容器运行在 WSL2 内部,Windows 端只做交互与管理,兼顾了易用性和性能


1. 检查系统要求
  • Windows 10 2004+ 或 Windows 11(家庭 / 专业 / 企业版均可)
  • 内存 ≥ 4GB(推荐 8GB+)
  • CPU 支持并开启虚拟化(Intel VT-x / AMD-V)

2. 开启虚拟化
  1. 重启电脑,进入 BIOS(不同品牌按键不同,常见 F2、F10、Del)
  2. 找到 Virtualization Technology(VT-x/AMD-V)选项,设为 Enabled
  3. 保存并重启

Ctrl+Shift+Esc → 性能 → CPU → 右下角 “虚拟化” 显示已启用即可。

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker


3. 启用 WSL2 功能

管理员身份打开 PowerShell,执行以下命令:

# 启用 WSL 子系统
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置 WSL 默认版本为 2
wsl --set-default-version 2

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

执行完成后,必须重启电脑,否则 WSL2 无法生效。


四、安装 Docker Desktop

1. 下载安装包

前往 Docker 官网 下载 Windows 版安装包,选择 Download for Windows - AMD64(绝大多数电脑适用)。

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

2. 安装过程
  1. 双击运行 Docker Desktop Installer.exe
  2. 安装配置界面:
    • 选择 All-users installation(推荐,稳定无限制)
    • 勾选 Add shortcut to desktop(方便后续打开)
    • 务必勾选 Use WSL 2 instead of Hyper-V

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

  1. 点击 OK,等待安装完成
  2. 安装结束后,点击 Close and log out,系统会注销当前用户,重新登录即可。

3. 首次启动配置
  1. 双击桌面 Docker 图标,启动程序
  2. 首次启动会弹出服务协议,点击 Accept
  3. 登录界面选择 Continue without signing in(个人开发无需注册账号)
  4. 等待右下角鲸鱼图标变为绿色,或左下角显示 Engine running,代表 Docker 服务就绪。

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker


五、验证安装:跑通第一个容器

打开 PowerShell,执行以下命令:

# 查看 Docker 版本
docker --version
# 运行 hello-world 测试容器
docker run hello-world

看到以下输出,说明安装完全成功:

Hello from Docker!
This message shows that your installation appears to be working correctly.

若第一次没成功,问题不大,自动从网上拉取镜像(Pulling

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker

再运行一次即可:

Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker


六、入门案例:部署一个 Nginx 网页服务

我们来跑一个 Nginx 容器,体验 Docker 的便捷部署能力。

1. 拉取 Nginx 镜像
docker pull nginx

Docker 会自动从 Docker Hub 下载最新版 Nginx 镜像。

2. 运行 Nginx 容器
docker run -d -p 80:80 --name my-nginx nginx

参数说明:

  • -d:后台运行容器
  • -p 宿主机端口:容器端口:将宿主机 80 端口映射到容器的 80 端口
  • --name:给容器起个名字,方便后续管理
3. 访问 Nginx 服务

打开浏览器,访问 http://localhost,看到 Nginx 欢迎页,说明部署成功!

4. 容器基础管理命令

powershell

# 查看运行中的容器
docker ps
# 停止容器
docker stop my-nginx
# 启动容器
docker start my-nginx
# 删除容器(需先停止)
docker rm my-nginx
# 删除镜像
docker rmi nginx

七、进阶优化:配置国内镜像源(必做)

国内网络访问 Docker Hub 较慢,配置镜像源可大幅提升拉取速度。

  1. 打开 Docker Desktop → 右上角 (Settings)→ Docker Engine
  2. 将配置替换为以下内容:
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run"
  ]
}
  1. 点击 Apply & Restart,等待 Docker 重启生效。

八、总结

到这里,已经完成了 Docker 的安装、验证和入门实战,现在我们可以:

  • 拉取并运行公共镜像(如 MySQL、Redis)
  • 体验容器的部署、启停、删除等基础操作
  • 为后续学习微服务、CI/CD、云原生打下基础

Docker 的核心优势就是 “一次构建,随处运行”,接下来你可以尝试部署自己的项目到容器中,感受它带来的便捷性。

结语:

如果对你有帮助,请点赞,关注,收藏,你的支持就是我最大的鼓励!

© 版权声明

相关文章