A Story of Docker & Containers

Docker 容器的故事

虚拟机太重,部署太慢,环境不一致……老周带小陈从"把应用装进集装箱"开始,
一路走过 Dockerfile、数据卷、网络、compose、K8s、CI/CD,直到云原生生态。

容器的本质,是把“应用 + 环境”标准化成“可搬运的箱子”——让软件像集装箱一样:一次打包,到处运行。
越往上,越从“管一个容器”,走向“管一群容器的自动化”。

CHAPTERS章节总览 · 容器之路

OPENING · 开场白
虚拟机太重了
部署一次直播带货模块要两小时。老周说:该上容器了。第一张容器家族树地图就此展开。
容器家族树 · 总览
CH.01 · 第一章
为什么需要容器
虚拟机太重、太慢、环境不一致。容器只隔离应用不隔离内核——轻量、可移植、自包含。
CH.02 · 第二章
镜像与容器
镜像是图纸,容器是房子。Namespace 看不见、Cgroup 抢不过——容器的隔离秘密。
第一层
CH.03 · 第三章
Dockerfile:把应用装进集装箱
环境即代码。FROM/COPY/RUN/CMD,镜像分层缓存,多阶段构建瘦身——900MB 变 20MB。
第二层
CH.04 · 第四章
容器生命周期
容器的生死绑定主进程。exec 进容器排查、日志管理、重启策略、资源限制安全三件套。
第三层
CH.05 · 第五章
数据卷:容器删了数据还在
血的教训:容器文件系统是临时的。数据卷持久化、绑定挂载开发神器、tmpfs 临时缓存。
第四层
CH.06 · 第六章
容器网络
bridge/host/none 三模式、端口映射、自定义网络容器名互访——数据库不暴露端口。
第五层
CH.07 · 第七章
docker-compose 编排
20 条命令变 1 条。services/volumes/networks 三个顶级配置,部署逻辑变成代码。
第六层
CH.08 · 第八章
镜像仓库与安全
Docker Hub 拉基础,Harbor 存业务。镜像供应链攻击、trivy 扫描、tag 版本管理。
第七层
CH.09 · 第九章
Kubernetes 入门
声明式管理:要 3 个就保 3 个。Pod、Deployment 滚动更新、Service 稳定入口、HPA 自动扩容。
第八层 + 第九层
CH.10 · 第十章
CI/CD 容器化交付
提交代码打 tag,自动测试→构建→推送→部署。发布从 40 分钟到 10 分钟,多环境把关。
第十层
CH.11 · 第十一章
安全与云原生生态
被挖矿的测试服务器。镜像扫描、非 root、禁 privileged。服务网格、可观测性、Serverless。
第十一层 + 第十二层
FINAL · 终章
出师报告:问题对照表与总结
王姐的 15 个"为什么",小陈的 CKA 模拟考。容器的北极星:一次打包,到处运行。
全部 · 复习

FAMILY TREEDocker 容器概念家族树

根:为什么需要容器?
第十二层云原生生态
服务网格Sidecar 流量治理 Serverless无服务器 可观测性指标/日志/链路 云原生容器+编排+微服务+DevOps
第十一层安全与最佳实践
镜像扫描trivy/Clair 最小权限非root/禁privileged 资源限制Cgroup 镣铐 网络隔离NetworkPolicy
第十层CI/CD 容器化交付
持续集成 CI自动测试+构建 持续交付 CD自动推送+部署 流水线test→build→deploy 多环境dev→test→staging→prod
第九层K8s 进阶
HPA自动扩缩容 ConfigMap/Secret配置分离 PV/PVC持久化存储 调度Pod 跑哪台
第八层Kubernetes 入门
Pod最小调度单位 Deployment副本/滚动更新/回滚 Service稳定入口 Namespace环境隔离
第七层镜像仓库
Registrypush/pull Harbor企业级私有仓库 镜像安全供应链/扫描 Tag 管理语义化版本
第六层编排
docker-compose多容器编排 服务依赖depends_on 配置即代码可版本管理 .env 变量配置分离
第五层容器网络
bridge/host/none三种模式 端口映射-p 宿主机:容器 容器互联名字代替 IP 最小暴露数据库不映射
第四层数据管理
数据卷 Volume持久化 绑定挂载开发神器 tmpfs内存临时 删卷=删数据三思
第三层容器生命周期
run/start/stop生死绑定主进程 exec进容器排查 日志max-size 防爆盘 重启策略--restart=always
第二层镜像 Image
Dockerfile环境即代码 镜像分层缓存/共享 多阶段构建瘦身 FROM/COPY/RUN/CMD
第一层容器基础
镜像 Image只读图纸 容器 Container运行实例 Namespace看不见 Cgroup抢不过
为什么需要容器
虚拟机太重完整OS/分钟级 环境不一致我电脑能跑 轻量/可移植/自包含

MAPPING麻烦 → 容器概念 对照表

你遇到的麻烦对应的容器概念云间书店的落地
虚拟机太重、部署太慢容器VM 2 小时 → 容器秒级
环境不一致,"我电脑能跑"镜像 + Dockerfile环境即代码,处处一致
不知道容器怎么隔离的Namespace + Cgroup看不见别人 + 抢不过别人
容器数据一删就没了数据卷 Volume数据库数据挂卷,容器随便换
容器之间怎么通信自定义网络 + 端口映射容器名互访,只暴露对外服务
5 个容器 20 条命令docker-compose一个 yaml,一条命令全家桶
镜像从哪来、靠不靠谱镜像仓库 + 扫描Harbor 私有仓库 + trivy 扫描
多台服务器谁调度KubernetesPod/Deployment/Service 编排
流量暴涨要半夜加机器HPA 弹性伸缩CPU 超 60% 自动扩到 20 个 Pod
发布靠人肉、慢且易错CI/CD 流水线打 tag 全自动:测试→构建→部署
容器被攻破、主机遭殃容器安全非 root + 禁 privileged + 扫描
微服务多了排障难可观测性指标 + 日志 + 链路追踪三件套
✌ 语言