章节摘要:本章跟着一条线走——一票货从"货主仓库"到"装进箱子"的全过程,对应软件从"装环境"到"打镜像"的范式转移。读完你会明白容器化到底解决了什么、Docker 凭什么成为事实标准、它的架构五大件各自站在码头的哪个位置。
想象你是上世纪港口的一名理货员。码头上散落着数不清的货物:成捆的皮革、成桶的化学品、怕磕碰的瓷器,每一样都要靠人力一件件吊上货轮,装卸一次货轮要在港里停上十天半月。谁也不敢随便动别人的货,因为不知道怎么摆、怕压坏、怕串味——这就是没有集装箱的码头,也正是没有容器化时代的软件交付:每个应用都带着自己的"散装货",部署就是把这堆散货在另一台机器上重新码一遍,环境和依赖稍有出入就前功尽弃。
后来铁皮箱子出现了。货物装进标准尺寸的集装箱,吊装有了岸桥,堆放有了堆场,货轮在港时间从十天半月压缩到几十个小时。理货员不再关心箱子里是什么,只认装箱单。本章要讲的就是软件行业的"集装箱革命":容器化把应用连同它的运行环境一起装进标准箱体,让"在哪儿跑"不再取决于"在哪儿装的"。
本章的主线在五个站点上推进,每个站点回答一个具体问题:
正式进站之前,先在港区门口看一眼全景——本章五节在港区里的位置,与整座教程码头的关系:

从"散装部署"的痛感切入,讲清楚容器化的本质:把应用、依赖、配置打包成一个标准化交付单元。你会遇到本教程的第一个容器,并在终端里看到它跑起来的完整输出。这一站解决"容器化是什么、为什么需要它"。
同样是为了隔离,虚拟机是"整船出租"——每艘船都带着全套船员和备用引擎;容器是"标准箱共享船舱"——大家共用一条船的引擎(操作系统内核),只分各自有边的箱子。这一站用对比矩阵和实测数据说清两者的取舍与适用场景。
从容器技术的前身讲起:Docker 并没有发明容器,它做的是给集装箱定标准、给岸桥配驾驶室。这一站梳理它凭什么在众多容器方案里胜出——镜像分层、生态仓库与开发者体验三张牌。
Client 是调度室里的对讲机,Daemon 是指挥岸桥的中控,Registry 是堆场,镜像与容器是货与船上的箱子。这一站把五大件的职责边界、通信路径和常见误解一次讲透,为后面所有章节提供坐标系。
回望上世纪海运业的集装箱化:标准化如何战胜惯性、工会与船公司为何一度抵制、赢家到底赢在哪里。这段往事与软件容器化的每一步惊人地相似,读完它你会对第 3 章的镜像分层和第 7 章的标准化部署有完全不同的体感。
本章最重要的认知转折在 1.2 与 1.4 之间:容器不是轻量级虚拟机,它们隔离的对象根本不同。 虚拟机隔离的是整台机器(含内核),容器隔离的是进程视图——文件系统、进程空间、网络栈。理解了这一点,很多"怪现象"瞬间合理:容器为什么秒级启动、为什么不能跨内核运行 Linux 镜像跑在 Windows 容器模式、为什么容器里看不到宿主机的进程。
第二个拐点在 1.4:镜像与容器的关系是"类与实例",但在 Docker 里它们都是"层"的产物。 镜像是只读层的堆叠,容器只是在这些只读层上面加了一层可写层。这个认知会在第 3 章展开成完整的分层存储理论。
本章的落点一句话:容器化 = 标准化交付单元 + 进程级隔离 + 中心化分发的堆场。三者缺一不可——缺了标准化就没有生态,缺了隔离就没有密度,缺了堆场就没有分发。
认识了港区,就该靠港了。第 2 章你将亲手把 Docker 装进自己的机器,学会与调度室(命令行)对话,完成第一次提货(拉镜像)和第一次起吊(跑容器)。本章所有概念到那时都会变成你指尖敲出的命令。