Files
docker_practice/20_cases_os/README.md
T
yeasy 51698c89c5 fix(content): correct verified internal inconsistencies across 7 sections
均为书内自证的矛盾,无需外部来源:

- 19.3: golang:1.26-alpine 标注为 ~1GB,但 21.7 将 ~900MB 归给非 alpine 的
  golang:1.26,且 7.17 实测 alpine 版镜像为 295MB——alpine 变体不可能大于其
  非 alpine 版本。改为与 21.7 一致的「golang:1.26 基础镜像的 ~900MB」。
- 20_cases_os: 正文称通用镜像 100-300 MB,紧邻的表格却列 Ubuntu ~80 MB
  (与 4.2 的 ubuntu 24.04 78MB 一致)。正文改为 80-300 MB。
- 4.2: 「查找大于 500MB 的镜像」的 ^[0-9]+GB 不匹配小数,会漏掉 docker 实际
  输出的全部 x.yGB(本书自己的示例即为 2.5GB)。补充可选小数部分。
- 6.2: docker image ls 示例输出把 tag 混入 REPOSITORY 列
  (127.0.0.1:5000/ubuntu:latest + TAG latest),与同块 ubuntu/latest 行及
  本节自述的 tag 格式不符。
- 5.3: 生命周期状态图缺 Stopped --> Running,而 5.3.6 正是讲 docker start
  启动已停止的容器;原图中停止的容器只能被删除。
- 9.5: 端口映射图节点标签 "容器 (Class B: 80)" 语义错乱(Class B 是 IP 地址
  分类,与端口无关),改为「容器 (端口: 80)」。
- appendix/faq/errors.md: 标题「常见错误速查表」与 SUMMARY.md 及 faq/README
  两处链接文字「常见错误处理」不一致(全书 196 篇中唯一一处标题漂移)。
2026-07-16 23:20:25 -07:00

3.7 KiB

第二十章 实战案例 - 操作系统

章节概述

本章将介绍 Docker 在不同操作系统镜像场景下的实战案例。当你构建容器化应用时,选择合适的基础镜像至关重要。不同的操作系统镜像在大小、功能和性能方面各有特点,适用于不同的使用场景。本章通过具体的案例,详细讲解如何在 Docker 中使用主流操作系统镜像,包括轻量级镜像 (Busybox、Alpine) 和完整功能镜像 (Debian、Ubuntu、CentOS 等)。

版本说明

本章示例中使用的操作系统镜像版本遵循以下原则:

  • Alpine、Debian、Ubuntu、CentOS 等操作系统镜像采用大版本或次版本标签(如 alpine:3.21ubuntu:26.04),避免使用 latest 标签确保构建的可再现性
  • OS 大版本保留,以便获得最新的安全补丁和修复
  • 在生产环境中,建议根据实际需求选择合适的版本,并定期更新以获得安全修复

为什么选择合适的操作系统镜像很重要

在容器化应用开发中,选择合适的基础操作系统镜像直接影响容器的大小、启动速度、安全性和运行性能。不同的镜像提供了不同的功能集和资源占用:

  • 轻量级镜像 (Busybox、Alpine) - 镜像大小仅几 MB,启动快速,适合微服务、IoT 设备和对资源敏感的环境。Busybox 是最小的选择,集成了常见的 Unix 工具;Alpine 则提供了完整的包管理器,方便安装额外工具。
  • 通用镜像 (Debian、Ubuntu) - 提供完整的 Linux 功能和丰富的软件生态,镜像大小通常在 80-300 MB 之间。适合需要灵活安装各种依赖和工具的应用场景。
  • 企业级镜像 (CentOS、Fedora) - 基于 Red Hat 生态,广泛应用于企业环境和复杂系统应用。提供了 yum 包管理器和强大的系统管理工具。

选择镜像的关键原则是 “小而够用”——选择满足应用需求的最小镜像。这样可以减少安全漏洞表面积、加快镜像拉取和推送速度、降低存储成本,同时也使容器更便于分发和部署。

常用操作系统镜像对比

镜像 大小 包管理器 适用场景 优势
Busybox ~1 MB 最小化工具集、initrd 极致轻量,启动秒级
Alpine ~5 MB apk 微服务、静态应用 体积小,有包管理器
Debian ~100 MB apt-get 通用应用、开发环境 软件包丰富,稳定性强
Ubuntu ~80 MB apt-get 类似 Debian,现代化系统 更新频繁,用户多
CentOS ~200 MB yum 企业应用、兼容性需求 企业级支持,稳定性高
Fedora ~200 MB dnf 新特性需求、开发环境 最新技术栈,创新性强

学习目标

通过学习本章内容,你将能够:

  • 理解不同操作系统镜像的特点、大小和适用场景
  • 掌握在 Docker 中使用各类操作系统镜像的方法和最佳实践
  • 学习如何根据实际需求选择合适的基础镜像,实现镜像优化
  • 了解如何在不同操作系统容器中安装、配置和管理应用程序
  • 掌握多阶段构建等高级技巧,最小化最终镜像大小
  • 学会使用 Docker Compose 编排多个操作系统容器环境

章节内容导航

  • Busybox — 超轻量级工具集镜像,适合嵌入式和最小化容器
  • Alpine — 轻量级 Linux 镜像,广泛用于生产环境微服务
  • Debian Ubuntu — 功能完整的通用 Linux 镜像,生态丰富
  • CentOS Fedora — 企业级 Linux 镜像,适合复杂系统应用
  • 本章小结