

🔥个人主页:北极的代码(欢迎来访)
🎬作者简介:java后端学习者
✨命运的结局尽可永在,不屈的挑战却不可须臾或缺!
前言:
大家好,我是代码不加冰,又到了痛苦的周一,上了一天的课,已经累瘫了,但宿舍开着空调,把晚自习逃了,还是挺惬意的,然后这里主要学习一下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:
- Namespace(命名空间):实现资源隔离,为容器创建独立的进程、网络、文件系统、主机名、用户空间;
- CGroup(控制组):限制容器资源使用(CPU、内存、磁盘 IO、网络带宽),避免单个容器占用全部资源;
- 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 原生运行,所以提供了两种兼容方案:
- Hyper-V 虚拟机:老旧方案,资源占用高,Windows 家庭版还不支持;
- WSL2:轻量、高效、全版本兼容(Win10/Win11 家庭版、专业版都能用),也是本文采用的安装方式。
Docker Desktop 借助 WSL2 作为底层运行环境,把容器运行在 WSL2 内部,Windows 端只做交互与管理,兼顾了易用性和性能。
1. 检查系统要求
- Windows 10 2004+ 或 Windows 11(家庭 / 专业 / 企业版均可)
- 内存 ≥ 4GB(推荐 8GB+)
- CPU 支持并开启虚拟化(Intel VT-x / AMD-V)
2. 开启虚拟化
- 重启电脑,进入 BIOS(不同品牌按键不同,常见 F2、F10、Del)
- 找到
Virtualization Technology(VT-x/AMD-V)选项,设为Enabled - 保存并重启
Ctrl+Shift+Esc → 性能 → CPU → 右下角 "虚拟化" 显示已启用即可。

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


执行完成后,必须重启电脑,否则 WSL2 无法生效。
四、安装 Docker Desktop
1. 下载安装包
前往 Docker 官网 下载 Windows 版安装包,选择 Download for Windows - AMD64(绝大多数电脑适用)。

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

- 点击
OK,等待安装完成 - 安装结束后,点击
Close and log out,系统会注销当前用户,重新登录即可。
3. 首次启动配置
- 双击桌面 Docker 图标,启动程序
- 首次启动会弹出服务协议,点击
Accept - 登录界面选择
Continue without signing in(个人开发无需注册账号) - 等待右下角鲸鱼图标变为绿色,或左下角显示
Engine running,代表 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)

再运行一次即可:

六、入门案例:部署一个 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 较慢,配置镜像源可大幅提升拉取速度。
-
打开 Docker Desktop → 右上角 (Settings)→
Docker Engine -
将配置替换为以下内容:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run"
]
} -
点击
Apply & Restart,等待 Docker 重启生效。
八、总结
到这里,已经完成了 Docker 的安装、验证和入门实战,现在我们可以:
- 拉取并运行公共镜像(如 MySQL、Redis)
- 体验容器的部署、启停、删除等基础操作
- 为后续学习微服务、CI/CD、云原生打下基础
Docker 的核心优势就是 "一次构建,随处运行",接下来你可以尝试部署自己的项目到容器中,感受它带来的便捷性。
结语:
如果对你有帮助,请**点赞,关注,收藏,**你的支持就是我最大的鼓励!