序章: 准备工作:从 Linux 基础到 Docker 环境配置

序章: 准备工作:从 Linux 基础到 Docker 环境配置

摘要: 本章是整个知识体系的基石,旨在确保我们拥有共同的起点和一致的开发环境。我们将首先明确本指南的目标读者,并将您熟知的 Linux 概念与 Docker 技术进行映射。接着,我们将以详尽的、图文并茂的步骤,指导您在 Windows 上完成 WSL2 的前置配置、Docker Desktop 的安装、可选的汉化,并 重点解决安装过程中最常见的 WSL 更新失败问题。最后,我们将验证安装并配置国内镜像加速器,为后续的实战之旅扫清一切障碍。


0.1. 本篇指南的目标读者:DevOps 赋能的容器化实践者

在开始之前,我们希望明确,这份笔记是为特定类型的开发者精心设计的。如果您在以下描述中看到了自己的影子,那么恭喜您,这里就是您系统性掌握 Docker 的最佳起点。

我们假定您是:

  • 一位将 WSL2 作为核心开发环境的实践者,日常工作离不开 Windows Terminal 和 VS Code Remote - WSL 插件。
  • 一位对 Linux 命令行 怀有敬畏并运用自如的开发者,grep, awk, curl, htop, systemctl 等工具是您解决问题的得力助手。
  • 一位具备初步 DevOps 思维 的工程师,深刻理解环境一致性的重要性,并渴望将这种一致性从开发、测试延伸到生产部署的每一个环节。

0.2. 知识衔接:你的 Linux 技能在 Docker 中的应用价值

您最大的优势在于,Docker 并非凭空产生的“魔法”,而是构建在 Linux 内核特性之上的产物。您已掌握的技能不仅不会过时,反而会成为您理解 Docker 底层原理的“金钥匙”。

你的 Linux 技能在 Docker 世界的映射核心关联与价值
进程管理与隔离 (ps, top, chroot)Docker 容器 (Container)Docker 使用 Linux 命名空间 (Namespaces) 为每个容器创建独立的进程树 (PID)、网络栈 (NET) 等。您对进程的理解能帮助您迅速领悟容器的隔离本质。
资源限制 (nice, ulimit, cgroups)容器资源配额 (--cpu, --memory)Docker 直接利用 Linux 控制组 (Cgroups) 来限制和监控容器的 CPU、内存等资源使用。您的运维经验能让您更好地进行容器性能调优。
文件系统与挂载 (mount, fstab, ln)镜像分层与数据卷 (Volume)Docker 的镜像利用了 联合文件系统 (UnionFS) 实现分层,而数据持久化则类似于 mount 操作。理解文件系统能帮您彻底搞懂数据如何管理。
网络配置 (ip addr, iptables)Docker 网络 (Network)Docker 通过创建虚拟网桥 (如 docker0) 和配置 iptables 规则来实现容器网络。您的网络知识是解开容器通信“黑盒”的关键。
脚本自动化 (Shell Scripting)Dockerfile & CI/CD 流水线编写 Dockerfile 本质上就是用声明式的方式编写一个构建脚本。您的脚本能力将直接转化为自动化构建和部署的能力。

0.3. 前置要求:安装 WSL 2 与 Linux 发行版

核心前置条件: 在 Windows 上使用 Docker Desktop 强依赖 WSL 2 作为其后端运行环境。因此,在安装 Docker Desktop 之前,您必须先成功安装 WSL 2 并配置至少一个 Linux 发行版(如 Ubuntu)。

如果您尚未完成此步骤,请务必参考以下这篇详尽的指南,它将指导您完成从零开始的全部流程,甚至包括如何将发行版安装到非系统盘。

请确保您已完成上述指南中的所有步骤,再继续阅读。


0.4. 安装并配置 Docker Desktop

0.4.1. 下载 Docker Desktop

0.4.2. 执行安装程序

  • 双击下载的 .exe 安装文件,启动安装向导。
  • 在配置界面,请确保勾选 “Use WSL 2 instead of Hyper-V (recommended)” 选项。这是我们选择的最佳实践方案。点击 Ok 继续。

)

0.4.3. 完成首次启动配置

  • 安装完成后,启动 Docker Desktop。
  • 接受订阅协议: 首次打开时,会弹出 Docker 订阅服务协议,点击 Accept 接受以继续。

  • 登录 (可选): 系统会提示您登录。您可以选择使用 Docker Hub、GitHub 或 Google 账户登录,如果暂时不需要,也可以点击 Continue without signing in 跳过此步骤。

  • 问卷调查 (可选): 接下来会有一个关于您角色的简短问卷,可以直接点击 Skip 跳过。

)

  • 启动完成: 完成以上步骤后,您将看到 Docker Desktop 的主界面,左下角显示为绿色,表示引擎正在运行。


0.5. 汉化 Docker Desktop(可选)

对于希望使用中文界面的用户,可以按照以下步骤进行汉化。

0.5.1. 下载中文语言包

  • 将下载的 app.asar 文件(或包含该文件的压缩包)保存到本地。

0.5.2. 替换语言文件

  • 检查版本: 在替换前,请查看您 Docker Desktop 的版本号。可以在主界面右下角或设置中找到。

  • 定位目录: 导航至 Docker 的资源文件目录,默认路径为:
    C:\Program Files\Docker\Docker\resources
  • 备份与替换:
    1. 在该目录下找到原始的 app.asar 文件,将其重命名为 app.asar.bak 以作备份。
    2. 将您从 GitHub 下载的、与您版本对应的中文 app.asar 文件复制到此目录。

0.5.3. 重启 Docker Desktop

  • 彻底关闭 Docker Desktop(可以右键任务栏图标选择 Quit Docker Desktop)。
  • 重新启动程序。此时,界面应该已经显示为中文。


0.6. 关键问题排查:解决 WSL 更新失败

常见陷阱: 启动 Docker Desktop 时,可能会遇到 “WSL Kernel version too low” 或类似的错误提示,指出 WSL 更新失败。这通常是由于您的 Windows 系统版本过低,不满足当前 WSL 2 内核的要求所致。

)

解决方案:升级 Windows 并手动更新 WSL

1. 检查 Windows 版本

  • 按下 Win + R 组合键,输入 winver 并回车。
  • 查看您的 Windows 版本号。WSL2 的完整功能和稳定性需要 Windows 11 版本 22H2 或更高版本。如果您的版本较低(如 21H2),则必须升级。

2. 手动升级 Windows

  • 运行下载的工具,按照提示完成系统升级。这个过程耗时较长,请确保电脑电量充足并保持网络连接。
  • 升级完成后,再次运行 winver 命令,确认系统版本已达到 22H2 或更高。

3. 手动更新 WSL 内核

  • 系统升级后,以 管理员身份 运行 PowerShell 或 Windows Terminal。
  • 执行 WSL 更新命令:
    1
    wsl --update
  • 更新完成后,检查 WSL 版本以确认成功:
    1
    wsl --version

4. 重新启动 Docker Desktop

  • 完成以上所有步骤后,再次启动 Docker Desktop。此时,之前的 WSL 错误应该已经消失。


0.7. 最终验证与镜像加速配置

完成上述步骤后,您的 Docker 环境已基本就绪。现在,我们来进行最后的验证和优化。

1. 验证 Docker 环境

打开您的 WSL2 终端 (例如,在 Windows Terminal 中打开 Ubuntu 标签页),执行以下命令:

1
2
# 检查 Docker 版本,确认客户端和服务端均已正常运行
docker --version
1
2
# 运行经典的 "hello-world" 镜像,验证 Docker 的完整工作流程
docker run hello-world

如果您能看到 “Hello from Docker!” 的问候语,那么恭喜您,Docker 环境已成功搭建!

2. 配置国内镜像加速器

关键优化: 由于网络原因,直接从 Docker Hub 官方仓库拉取镜像可能会非常缓慢甚至失败。配置国内镜像加速器是保证后续学习和开发效率的 必要步骤

  1. 在任务栏右下角右键点击 Docker 图标,选择 Settings (设置)。
  2. 导航到 Docker Engine 标签页。
  3. 在右侧的 JSON 配置文件中,添加 registry-mirrors 字段。以下是一些常用的公共加速器地址(请选择一个或多个):
1
2
3
4
5
6
7
8
9
10
11
12
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.xuanyuan.me"
]
}
  1. 点击右下角的 “Apply & Restart” 按钮。Docker 将会重启并应用新的配置。

至此,您的开发环境已完全准备就绪。在下一章中,我们将正式深入 Docker 的内部,从其核心架构与概念开始,真正地“拆开”这个黑盒。