这个系列把 Docker 的知识整理成了一条由浅入深的完整路径:从「Docker 是什么」的第一问开始,经过镜像、容器、仓库三大核心概念与日常操作命令,进入数据管理与网络配置两座大山,再下探到命名空间与控制组的底层实现,最后以 Compose 编排、实战排错和 Kubernetes 展望收尾。全系列 55 篇,按发文时间顺序读即是推荐阅读顺序。
先立一个总纲:Docker 本质上是用 Linux 内核的命名空间做隔离、用控制组做资源限制、用联合文件系统做镜像分层的容器引擎。理解了这句话,系列里的命令操作和底层原理就能互相印证。
第一层:认识 Docker(一~三)
- Docker 是什么:容器与传统虚拟化的对比,一张图看懂 Docker 的定位
- 为什么要用 Docker:解决环境不一致、快速部署、弹性伸缩与微服务
- Docker 快速上手全景:安装、架构、命令、卷、镜像、网络的全景长文,先跑通再深入
第二层:三大核心概念与仓库(四~八)
- 镜像基本概念:分层存储、UnionFS 与只读镜像
- 容器基本概念:镜像的运行实例,读写层与生命周期
- 仓库基本概念:Repository 与 Registry 的区别
- Docker Hub 的使用:官方仓库、搜索、自动构建
- 访问仓库:pull/push/登录,镜像的来路与去处
第三层:安装与镜像操作(九~十四)
- 在 Ubuntu 上安装 Docker:官方源与镜像加速
- 获取镜像:docker pull 与镜像 tag
- 列出镜像:docker image ls 的过滤、格式化与虚悬镜像
- 删除镜像:镜像删除的分层原理与依赖检查
- 构建镜像:docker build 与 commit 的对比
- Dockerfile 指令速查:FROM 到 SHELL 的 18 条指令一览表
第四层:容器操作与命令(十五~二十一)
- 启动容器:docker run 的前台/后台与标准操作流程
- 进入容器:attach 与 exec 的正确选择
- 导入导出容器:export/import 与快照迁移
- 删除容器:容器删除与数据卷的牵连
- 45 条常用命令速查:一张表覆盖日常 90% 的操作
- docker ps 显示指定的列:–format 模板与过滤器
- 批量删除已停止的容器:组合命令与 prune
第五层:私有仓库(二十二~二十三)
第六层:数据管理(二十四~二十六)
第七层:网络配置(二十七~三十四)
- 容器网络的底层实现:veth 与网桥、四种网络模式
- 外部访问容器:-P/-p 端口映射的日常用法
- 容器互联:–link 传统方式与自定义网络
- 配置容器 DNS:主机名与 DNS 的自定义
- 配置 docker0 网桥:–bip/–mtu 网桥参数
- 高级网络配置:brctl 与 iproute2 直接操作网桥
- 网络快速配置指南:三组常用网络选项速配
- 端口映射的实现原理:iptables NAT 规则剖析,底层原理可衔接本站《TCP/IP 系列导读》
第八层:底层实现(三十五~四十)
- Docker 的基本架构:Client/Daemon/Registry 的 C/S 结构
- Docker 架构详解:从 LXC 到 libcontainer,各模块万字拆解
- Docker 的底层实现:命名空间 + 控制组 + 联合文件系统总纲
- 命名空间(Namespaces):六大隔离的内核机制,同源知识见本站《Linux 系列导读》的进程专题
- 控制组(Cgroups):资源限制、优先级与统计
- 限制容器可用的 CPU:cpuset/quota 九图压测实验
第九层:编排与实战(四十一~四十六)
- Docker Compose:多容器应用的编排入口
- X86 平台使用容器交叉编译:用容器造环境,编译 ARM 目标
- Nginx 容器实战:官方镜像的挂载与自定义
- 容器诡异退出的 137 码:OOM 排查记,137 = 128 + 9
- Device or resource busy 排错:挂载冲突的定位与解决
- 迁移 Docker 存储目录:/var/lib/docker 空间不足的软链接迁移
第十层:运维与排错(四十七~五十一)
- 常见问题总结:26 组高频问答
- Dockerfile 最佳实践:官方文档级的 12 个指令守则
- 如何调试 Docker:daemon.json 调试开关与 SIGUSR1
- 服务端命令 dockerd:守护进程选项分组速查
- 客户端命令 docker:命令分类全景与新旧别名
第十一层:走向 Kubernetes(五十二~五十五)
单机玩转之后,生产规模的调度与编排就是 Kubernetes 的主场:
- Kubernetes 初识:为什么需要容器编排引擎
- Kubernetes 简介:可移植、可扩展、自动化的定位
- Kubernetes 基本概念:Pod、Service、Label 与节点
- Kubernetes 架构设计:Master/Node 与 kube-proxy 代理机制
怎么读这个系列
- 没用过 Docker:按顺序读前四层,二十一篇读完就能独立完成建站、部署的日常操作;数据与网络两层建议通读
- 会基本操作:直接跳第七、八层(网络与底层实现),这是排错能力的分水岭;排错案例在第九层
- 急着解决具体问题:把系列当手册用——磁盘满了看第四十六篇,容器莫名消失看第四十四篇,网络不通从第二十七篇顺着读到第三十四篇