第二章:容器基础高频面试题 —— Docker 核心原理、镜像、容器、网络、存储
🎯 本章聚焦:Docker 底层原理是容器平台面试的“必争之地”。面试官通过镜像分层、隔离机制、网络模型、存储方案四个维度,考察候选人对容器本质的理解深度。本章提供结构化回答框架 + 高频追问 + 项目实战模板,助你从“会用”进阶到“懂原理”。
📌 面试问答卡片 1:Docker 镜像分层结构原理
| 面试问题 | 请解释 Docker 镜像的分层结构原理及其核心优势。 |
| 面试官考察点 | 对 UnionFS、写时复制(CoW)、镜像复用机制的理解深度,以及能否清晰表述“层”的概念。 |
| 回答框架 | 总述分层结构 → 只读层与可写层 → 写时复制机制 → 三大优势(复用/节省/加速) |
| 简短示例回答 | Docker 镜像由多层只读层叠加而成,每层对应 Dockerfile 的一条指令。容器启动时在镜像层上添加可写层,修改通过写时复制在可写层进行,镜像层保持不变。优势在于层复用、节省存储、加速分发。 |
| 可能追问 |
|
| 避坑提醒 | ❌ 不要混淆镜像层与容器层;不要忽略写时复制的性能开销(尤其大量小文件写入);不要误认为所有镜像层都是完全独立的。 |
📌 面试问答卡片 2:容器资源隔离与限制
| 面试问题 | Docker 容器如何实现资源的隔离与限制?请从内核机制层面说明。 |
| 面试官考察点 | 对 Linux Namespace 类型与作用、Cgroups 子系统的掌握程度,以及是否理解“隔离+限制”的协同关系。 |
| 回答框架 | 隔离维度(Namespace) → 限制维度(Cgroups) → 两者协同 → 与虚拟机隔离的差异 |
| 简短示例回答 | Docker 通过 Linux Namespace 实现进程、网络、文件系统等 6 大隔离,每个容器拥有独立命名空间。通过 Cgroups 对 CPU、内存、磁盘 IO 进行配额限制,防止资源争抢。两者配合形成“隔离+限制”的完整沙箱环境。 |
| 可能追问 |
|
| 避坑提醒 | ❌ 不要只讲隔离不讲限制;不要误认为容器与虚拟机隔离级别相同;不要忽略 Cgroups v1 与 v2 的版本差异。 |
📌 面试问答卡片 3:Docker 网络模式与选型
| 面试问题 | Docker 支持哪些网络模式?在不同业务场景下如何选择? |
| 面试官考察点 | 对 bridge、host、none、overlay 等模式的原理理解,以及面对真实场景的选型判断力。 |
| 回答框架 | 列举四类模式 → 原理说明 → 匹配典型场景 → 选型建议 + 安全考量 |
| 简短示例回答 | Docker 主要网络模式:bridge(默认 NAT)、host(共享网络栈)、none(无网络)、overlay(跨主机隧道)。单机开发选 bridge,跨主机集群选 overlay,高性能选 host,安全隔离选 none。生产环境建议 overlay 配合服务发现。 |
| 可能追问 |
|
| 避坑提醒 | ❌ 不要忽略 host 模式的安全风险;不要认为 bridge 模式适合所有场景;不要混淆 CNM 与 CNI。 |
📊 Docker 核心组件对比速查表
| 维度 | 核心技术 | 隔离 / 共享机制 | 性能特征 | 典型场景 |
|---|---|---|---|---|
| 镜像 | UnionFS / Layer | 只读共享 + 写时复制 | 分层缓存,加速构建与分发 | 应用打包、CI/CD 流水线 |
| 容器 | Namespace + Cgroups | 进程隔离 + 资源配额 | 接近原生,无虚拟化损耗 | 微服务运行、批量任务 |
| 网络 | CNM / CNI | 网络栈隔离 + 隧道封装 | overlay 有 5-10% 损耗 | 服务互联、跨主机通信 |
| 存储 | Volume / Mount | 数据持久化 + 跨节点共享 | 依赖后端存储性能 | 有状态服务、日志持久化 |
💡 速记口诀:镜像“分层复用”,容器“隔离+限制”,网络“模式选型”,存储“卷管持久”。
🏗️ 真实项目模板:金融级容器化平台网络与存储架构
| 项目名称 | 基于 Kubernetes 的高可用容器化微服务平台(网络与存储专项) |
| 业务背景 | 某金融科技公司核心交易系统从传统 VM 迁移至容器平台,要求 RTO < 30 秒、RPO = 0,支持跨 AZ 容灾。 |
| 规模指标 | 500+ 节点、8000+ 容器、日均处理 1000 万+ 交易请求、跨 3 个可用区。 |
| 技术栈 | Docker + Kubernetes + Calico(BGP 模式)+ Ceph RBD + Prometheus + Harbor |
| 核心难点 |
|
| 面试高频追问 |
|
| 可迁移回答话术 | “在金融交易系统的容器化迁移中,我们通过 Calico 的 BGP 模式直连取代了 overlay 隧道,将网络延迟控制在 50μs 以内。对于有状态服务,采用 Ceph RBD 块存储方案,结合 local PV 实现读写性能接近物理机。跨 AZ 容灾方面,通过多集群联邦和 Global Ingress 实现流量调度,RTO 控制在 15 秒内。” |
⚠️ 面试提醒:项目案例切忌只讲“做了什么”,要突出“为什么选这个方案”和“量化收益”。面试官更关注你的技术选型思维和问题解决路径。
✅ 第二章复习自检清单
□ 能流畅说出镜像分层结构与写时复制流程
□ 能列举 6 种 Namespace 并说明各自隔离的资源
□ 能对比 bridge / host / overlay 三种模式的原理与适用场景
□ 能说出 CNM 模型的三个核心组件
□ 能用自己的话复述金融级容器平台网络与存储方案
□ 能流畅说出镜像分层结构与写时复制流程
□ 能列举 6 种 Namespace 并说明各自隔离的资源
□ 能对比 bridge / host / overlay 三种模式的原理与适用场景
□ 能说出 CNM 模型的三个核心组件
□ 能用自己的话复述金融级容器平台网络与存储方案