Decentralization? We're still early!

用午餐时间精通Docker技术:《Learn Docker in a Month of Lunches》

  • 用午餐时间精通Docker技术:《Learn Docker in a Month of Lunches》

    發布人 Brave 2026-02-16 02:01

    在快节奏的 IT 圈混,想找整块时间闭关修炼新技术真的太难了。由 Docker Captain Elton Stoneman 亲手打造的 《Learn Docker in a Month of Lunches, Second Edition》 简直就是为你这种忙碌的大佬量身定制的"加餐"指南。

    这本书由 Manning 出版社于 2025 年 10 月 14 日正式出版,针对 Docker 生态在过去五年中的重大变革进行了系统性更新。


    关于作者:Elton Stoneman 是何方神圣

    在深入这本书之前,有必要了解一下站在背后的男人。Elton Stoneman 并非泛泛之辈,他有着极其亮眼的履历:

    • 🏅 Docker Captain — Docker 官方认证的社区领袖
    • 🏅 14 次 Microsoft MVP(最有价值专家)— 横跨 .NET 和 Azure 领域
    • 🏢 曾在 Docker 公司任职三年,担任开发者布道师(Developer Advocate),专注于将容器技术推广到微软生态社区
    • 🎓 Pluralsight 平台上发布了超过 26 门在线课程,涵盖 Docker、Kubernetes、Azure 等核心主题
    • 📖 同系列姊妹作《Learn Kubernetes in a Month of Lunches》的作者
    • 🎤 自 2017 年起每届 DockerCon 的常驻演讲者和 Workshop 导师
    • 📺 YouTube 周更系列节目《Elton's Container Show》主持人
    • 💼 现运营 Sixeyed Consulting,为处于容器化旅程各阶段的企业提供咨询服务

    Stoneman 的独特优势在于他同时精通微软 .NET 生态和 Linux 容器世界。他在 Docker 工作的三年让他深入理解了容器引擎的底层机制,而十余年的 .NET 项目咨询经验则让他对遗留系统的容器化迁移有着深刻的实战洞察。这种"两栖"背景使得本书在处理 Windows 容器和传统应用迁移等主题时,具有其他 Docker 书籍难以企及的深度。


    核心魅力:每天一小时,轻松变大牛

    这本书完美契合 Manning 出版社经典的"午餐系列"(In a Month of Lunches)精髓,把复杂的 Docker 宇宙拆成了 22 个超级干货的课时。每课只需一小时左右,你完全可以一边吃着外卖,一边把容器技术给拿捏了。

    📚 "午餐系列"的前世今生: 这个系列最早由 Don Jones 创立,以《Learn Windows PowerShell in a Month of Lunches》打响第一炮(该书后来出到了第四版,累计影响超过 10 万读者)。此后逐步扩展到 Kubernetes、Azure、SQL、Active Directory、AI 数据工程等众多技术领域,已成为 Manning 最具辨识度的品牌系列之一。其核心哲学是:每天只需投入"一顿午餐"的时间(约 1 小时),一个月内就能系统掌握一门新技术。

    为什么这种学习模式特别有效

    • 🟢 零包袱上手:哪怕你从来没碰过 Docker,跟着书里的节奏走,也能从"小白"秒变"老司机"。
    • 🟢 多系统通吃:不管你手里拿的是 MacBook、Windows 本还是 Linux 工作站,书里的示例通通跑得通。
    • 🟢 拒绝假大空:这书不玩虚的,22 个实战实验(Lab)直接带你冲进生产环境的最前沿。
    • 🟢 多语言覆盖书中的应用示例横跨 Go、Java、Node.js 和 .NET 四大技术栈,不管你的主力语言是什么,都能在书中找到贴近自己工作的实战案例。
    • 🟢 渐进式难度曲线22 课的编排遵循严谨的教学设计——前 6 课打好镜像与容器的基础,中间 5 课升级到分布式应用,再到编排与 CI/CD,最后以生产级优化收尾。每一课都有明确的学习目标和自包含的 Lab 练习,确保你不会在某个环节"掉队"。

    全书内容架构:四大篇章 × 22 课

    本书采用了四段式架构设计,从基础到进阶层层递进。以下是完整的章节目录及各篇章的核心要点:

    PART 1 ⸺ 理解 Docker 容器与镜像(第 1–6 课)

    这是整本书的"地基",即使你是零基础,也能通过这六课建立起对 Docker 核心概念的扎实理解。

    课次主题核心要点
    1Before you begin环境准备、Docker Desktop 安装与验证、学习路线图
    2Understanding Docker and running Hello World容器 vs 虚拟机的本质区别、Docker 引擎架构、运行你的第一个容器
    3Building your own Docker imagesDockerfile 语法入门、FROM/RUN/COPY 等核心指令、镜像层(Layer)的概念
    4Packaging applications from source code into Docker Images多阶段构建(Multi-stage Build)、从源码到镜像的完整流程
    5Sharing images with Docker Hub and other registriesDocker Hub 的使用、私有仓库搭建、镜像标签(Tag)策略
    6Using Docker volumes for persistent storage数据持久化、绑定挂载(Bind Mount)vs 命名卷(Named Volume)、有状态应用的处理方式

    💡 关键知识点深挖——镜像层(Image Layer): Docker 镜像并非一个单一的大文件,而是由多个只读层叠加而成。每条 Dockerfile 指令(如 RUNCOPY)都会创建一个新层。理解这一机制对于构建高效镜像至关重要——合理利用层缓存可以将构建时间从分钟级缩短到秒级,而不当的指令排序则会导致缓存频繁失效,极大拖慢 CI/CD 流水线的速度。 本书第 3–4 课对此有非常深入的讲解。


    PART 2 ⸺ 在容器中运行分布式应用(第 7–11 课)

    从单容器进阶到多容器协作,这五课是从"能用 Docker"到"用好 Docker"的关键跃迁。

    课次主题核心要点
    7Running multi-container apps with Docker ComposeCompose 文件结构、服务定义、网络与依赖管理
    8Supporting reliability with health checks and dependency checks容器健康检查机制、启动顺序控制、故障恢复策略
    9Adding observability with containerized monitoringPrometheus + Grafana 监控栈、容器指标采集、可视化仪表盘
    10Running multiple environments with Docker Compose环境隔离、配置覆盖(Override Files)、开发/测试/生产多环境管理
    11Building and testing applications with Docker and Docker Compose容器化 CI 流程、自动化测试在容器中的执行

    💡 深度解读——Docker Compose V2 的时代变革:

    第二版全面拥抱 Docker Compose V2,这是一个你必须了解的重大架构变迁:

    对比维度Compose V1(已淘汰)Compose V2(现行标准)
    实现语言PythonGo(与 Docker CLI 同源)
    调用方式docker-compose(连字符)docker compose(空格)
    性能较慢显著提升
    容器命名下划线分隔(DNS 不友好)连字符分隔(DNS 兼容)
    文件格式需要 version 字段已移除 version 字段,采用 Compose Specification
    维护状态2023 年 7 月 EOL持续更新中(2025 年已迭代至 v5.x)
    新特性docker compose watch(代码变更自动重载)、profiles(服务配置文件)、includes(模块化配置)、GPU 支持

    ⚠️ 重要提醒: Compose V1 已于 2023 年 7 月正式 End of Life,不再接收任何更新。如果你仍在使用 docker-compose(带连字符),强烈建议尽快迁移到 docker compose(空格)。好消息是,现有的 docker-compose.yml 文件几乎无需修改即可在 V2 下运行,迁移成本极低。值得注意的是,为避免与早期 V1 文件格式版本号(2.x/3.x)混淆,Docker 团队在版本号上直接从 V2 跳到了 V5,因此你看到的 Compose v5 在功能上与 V2 一脉相承。

    💡 深度解读——容器可观测性(Observability):

    第 9 课是全书的一个隐藏亮点。在生产环境中,"能跑"和"跑得好"之间的差距,往往就体现在可观测性上。本书引导你搭建的监控栈遵循当前业界的最佳实践架构:

    ┌─────────────┐    ┌──────────────┐    ┌───────────┐
    │   cAdvisor   │───▶│  Prometheus   │───▶│  Grafana   │
    │ (容器指标采集) │    │ (指标存储/查询) │    │ (可视化面板) │
    └─────────────┘    └──────────────┘    └───────────┘
           │                  │                   │
           ▼                  ▼                   ▼
      CPU/内存/网络/       时序数据库           仪表盘 &
      磁盘IO指标          PromQL 查询          告警通知

    核心监控指标包括:

    • 📊 container_cpu_user_seconds_total — 容器 CPU 使用时间
    • 📊 container_memory_usage_bytes — 容器内存占用
    • 📊 container_network_receive/transmit_bytes_total — 网络吞吐量
    • 📊 container_fs_reads/writes_bytes_total — 磁盘 I/O

    在更高级的生产场景中,你还可以结合 Grafana Loki(日志聚合)和 Grafana Alloy(统一采集代理)来构建完整的"指标 + 日志 + 链路追踪"三位一体的可观测性体系。 本书第 9 课为你打下了坚实的起步基础。


    PART 3 ⸺ 使用容器编排器大规模运行(第 12–16 课)

    从单机迈向集群,这五课带你进入容器编排和 CI/CD 的核心战场。

    课次主题核心要点
    12Understanding orchestration: Docker Swarm and Kubernetes编排器的核心概念、Swarm vs K8s 的定位与选型
    13Deploying distributed applications as stacks in Docker SwarmSwarm Stack 部署、服务扩缩容、滚动更新
    14Automating releases with upgrades and rollbacks零停机更新策略、版本回滚机制、金丝雀发布
    15Configuring Docker for secure remote access and CI/CDTLS 加密通信、远程 Docker 守护进程、CI/CD 集成
    16Building Docker images that run anywhere: Linux, Windows, Intel, and Arm多平台构建(Multi-platform Build)、BuildKit 与 Buildx

    💡 深度解读——Docker Swarm vs Kubernetes:如何选型?

    第 12 课对两大编排器进行了并排对比。这里补充一些截至 2026 年的最新市场洞察,帮助你做出更明智的选择:

    维度Docker SwarmKubernetes
    学习曲线🟢 极低(一条命令 docker swarm init 即可启动)🔴 陡峭(涉及大量概念:Pod/Service/Ingress/ConfigMap...)
    适用规模小团队、初创公司、边缘计算企业级、多云部署、大规模微服务
    生态系统基础但够用极其丰富(Helm、Istio、ArgoCD、Prometheus...)
    市场份额(2026)小众超过 96% 的企业正在使用或评估
    维护状态Mirantis 承诺支持到 2030 年CNCF 旗舰项目,社区极其活跃
    运维成本首年运营费用通常高出 30–50%(主要在人力和工具链上)

    📌 务实建议: Kubernetes 赢得了编排之战,这是不争的事实。但 Swarm 并没有"死"——它仍然是小规模部署和快速原型验证的利器。本书的高明之处在于:先用 Swarm 帮你建立编排的核心心智模型(服务发现、负载均衡、滚动更新),再自然过渡到 K8s,而不是一上来就把你扔进 K8s 的复杂概念丛林。 如果你想深入 K8s,Stoneman 的姊妹作《Learn Kubernetes in a Month of Lunches》是无缝衔接的下一站。

    💡 深度解读——多平台构建(Multi-platform Build):

    第 16 课是第二版的全新内容,也是当下 Docker 生态中最重要的技术演进之一。随着 Apple Silicon(ARM64)的普及和边缘计算(IoT/嵌入式)的兴起,构建能同时运行在 AMD64 和 ARM64 上的镜像已成为刚需。

    核心工具链:

    • 🔧 BuildKit — Docker 的下一代构建引擎,支持并行构建阶段、高级缓存策略
    • 🔧 Buildx — BuildKit 的 CLI 插件,提供 --platform 标志用于多平台构建
    • 🔧 QEMU — 在 x86 机器上模拟 ARM 架构(反之亦然)

    最佳实践示例——跨平台编译 Dockerfile:

    # syntax=docker/dockerfile:1
    FROM --platform=$BUILDPLATFORM golang:alpine AS build
    ARG TARGETPLATFORM
    ARG BUILDPLATFORM
    # 利用原生架构进行交叉编译,避免 QEMU 模拟的性能损耗
    RUN go build -o /out/app .
    
    FROM alpine
    COPY --from=build /out/app /bin/app
    ENTRYPOINT ["/bin/app"]

    📌 性能提示: QEMU 模拟虽然方便,但速度比原生编译慢 5–10 倍。对于支持交叉编译的语言(Go、Rust、C/C++),应优先使用 --platform=$BUILDPLATFORM 固定构建阶段到原生架构,仅在运行阶段切换目标平台。本书对此有详细的策略讲解。


    PART 4 ⸺ 让容器为生产环境做好准备(第 17–22 课)

    最后六课是全书的"精华浓缩"——涵盖镜像优化、配置管理、日志、反向代理、消息队列等生产环境必备技能。

    课次主题核心要点
    17Optimizing your Docker images for size, speed, and security镜像瘦身、安全扫描、最小基础镜像(Alpine/Distroless)
    18Application configuration management in containers环境变量 vs 配置文件、Secret 管理、12-Factor App 实践
    19Writing and managing application logs with Docker日志驱动、集中化日志收集、结构化日志最佳实践
    20Controlling HTTP traffic to containers with a reverse proxyNginx/Traefik 反向代理、SSL 终端、负载均衡
    21Asynchronous communication with a message queue消息队列(如 NATS)、微服务解耦、事件驱动架构
    22Never the end学习路线图、社区资源、后续进阶方向

    💡 深度解读——镜像优化的三个维度:

    第 17 课可能是全书最具"生产价值"的一课。一个优化得当的 Docker 镜像不仅部署更快,还能显著降低攻击面:

    优化维度关键策略效果示例
    📦 体积使用 Alpine/Distroless 基础镜像、多阶段构建剥离构建工具、.dockerignore 排除无用文件镜像从 ~800MB 缩减到 ~50MB
    速度合理排序 Dockerfile 指令(频繁变动的层放最后)、善用层缓存、并行构建阶段构建时间从 5 分钟缩短到 30 秒
    🔒 安全以非 root 用户运行、定期扫描已知漏洞(CVE)、固定基础镜像版本标签减少 90%+ 的已知漏洞暴露面

    第二版给你带来的惊喜

    比起初版,这本"进化版"紧跟技术潮流,内容新鲜得冒泡:

    • 🆕 新技能加点:全面支持 Docker Compose V2,手把手教你玩转多阶段构建。
    • ☁️ 云端漫步:带你在 Azure 和 Google Cloud 上纵横驰骋,体验真正的云原生部署。
    • ☸️ K8s 敲门砖:特意准备了 Kubernetes 入门课,帮你顺滑迈向容器编排的高阶殿堂。
    • 🪟 老树开新花:连那些传统的 Windows 老应用,这书都能教你怎么通过容器技术让它们"返老还童"。
    • 🤖 自动化起飞:结合 GitHub Actions,帮你搭建一套顺滑无比的 CI/CD 自动化工作流。
    • 🏗️ 多平台构建全新加入 Linux/Windows/Intel/ARM 的跨平台镜像构建,覆盖 BuildKit 和 Buildx 工具链。
    • 📊 可观测性升级新增容器化监控章节,引导你搭建 Prometheus + Grafana 的生产级监控体系。

    📌 与初版的详细对比:

    维度初版(2020)第二版(2025)
    Docker ComposeV1(Python 版)V2(Go 版,CLI 集成)
    多平台构建未涉及全新章节(第 16 课)
    容器编排Docker Swarm 为主Swarm + Kubernetes 双轨并行
    云部署简要提及Azure & Google Cloud 深度实战
    CI/CD基础概念GitHub Actions 完整集成
    Windows 容器基础支持遗留应用迁移策略强化
    页数~400 页488 页

    关于 GitHub Actions + Docker CI/CD 的深度补充

    第 15 课所涉及的 CI/CD 内容,是现代 DevOps 实践的核心。这里提供一些本书所引导的 GitHub Actions + Docker 集成的关键最佳实践:

    🔧 Docker 官方提供的 GitHub Actions:

    • docker/build-push-action — 使用 BuildKit 构建并推送镜像
    • docker/login-action — 登录 Docker Hub 或私有仓库
    • docker/setup-buildx-action — 配置 Buildx 多平台构建环境

    🔐 安全要点:

    • 绝不在工作流文件中硬编码密钥,一律使用 GitHub Secrets
    • Docker Hub 认证使用 API Token 而非密码
    • 遵循最小权限原则(Least Privilege)配置工作流权限
    • 定期轮换访问令牌

    🏷️ 镜像标签策略:

    • 使用 Git commit SHA(短哈希)作为镜像标签,便于版本追溯和回滚
    • 结合语义化版本号(SemVer)和 latest 标签满足不同场景需求

    🔄 典型流水线流程:

    代码推送 → 触发 GitHub Actions → 运行测试 → 构建 Docker 镜像
      → 推送至容器仓库 → 部署至目标环境(Swarm/K8s/云服务)

    学完这本书,你能掌握哪些神技

    通过 22 课的系统学习,你将具备以下生产级能力:

    • ✅ 随手就能写出既安全又轻量的 Dockerfile。
    • ✅ 用 Docker Compose 像搭积木一样组建复杂的分布式应用。
    • ✅ 给容器安上"监控眼",日志和指标尽在你的掌控之中。
    • ✅ 把 Docker 丝滑嵌入你现在的开发流程,从此告别"我电脑上明明能跑"的尴尬。
    • 构建能同时运行在 Intel 和 ARM 架构上的多平台镜像。
    • 在 Azure 和 Google Cloud 上自信地部署和管理容器化应用。
    • 使用 GitHub Actions 搭建从代码提交到生产部署的完整自动化流水线。
    • 理解 Docker Swarm 和 Kubernetes 的核心编排概念,为迈向云原生做好准备。
    • 将传统 Windows 应用"搬进"容器,让遗留系统焕发第二春。
    • 运用反向代理(Reverse Proxy)控制容器间的 HTTP 流量,实现 SSL 终端和负载均衡。
    • 通过消息队列实现微服务间的异步通信,构建松耦合的事件驱动架构。

    适合谁读

    这本书的读者定位非常明确,以下人群将从中获益最大:

    读者类型适合程度原因
    🐣 Docker 零基础的开发者⭐⭐⭐⭐⭐从 Hello World 起步,渐进式学习曲线
    🔧 想系统化 Docker 知识的运维工程师⭐⭐⭐⭐⭐覆盖监控、日志、安全、CI/CD 全链路
    🪟 .NET/Windows 开发者⭐⭐⭐⭐⭐作者的 .NET 背景使 Windows 容器内容极具深度
    🏢 负责遗留系统现代化的技术主管⭐⭐⭐⭐专设章节讲解传统应用的容器化迁移策略
    ☁️ 准备拥抱云原生的架构师⭐⭐⭐⭐云部署 + K8s 入门为上云之路铺好台阶
    📖 读过初版想升级知识的老读者⭐⭐⭐⭐新增多平台构建、Compose V2、K8s 等核心内容

    业界读者怎么说

    以下是来自出版方收录的真实读者评价:

    📣 "Deep technical knowledge delivered in digestible daily lessons with hands-on exercises."Brandon Hunt, Intrado

    📣 "Breaks down Docker into manageable, bite-sized lessons perfect for a busy developer."David Cardozo, Updata

    📣 "Accessible without being shallow and focused relentlessly on what you actually need to know."Jason Schmidt, Oxide Computer Company


    学完之后,路在何方

    完成本书 22 课的学习后,你的容器技术之旅才刚刚开始。以下是推荐的进阶路线:

    《Learn Docker in a Month of Lunches》第二版(你在这里 📍)
         │
         ├──▶ 《Learn Kubernetes in a Month of Lunches》(同一作者,无缝衔接)
         │
         ├──▶ 深入 Kubernetes 生态:Helm / Istio / ArgoCD / Kustomize
         │
         ├──▶ 云原生进阶:AWS ECS/EKS、Azure AKS、Google GKE
         │
         └──▶ 平台工程(Platform Engineering):Backstage / Crossplane / Terraform

    小结

    如果你正想找一本不啰嗦、能实战、还能陪你吃午饭的 Docker 秘籍,那 《Learn Docker in a Month of Lunches》第二版 绝对值得你入手。488 页的篇幅、22 节循序渐进的课程、覆盖从基础到生产的完整知识链路——这不仅仅是一本"入门书",更是一份能陪伴你从 Docker 新手成长为容器化实践者的系统学习路线图。

    Brave 回复 1 week, 4 days ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在