第二章:容器基础高频面试题 —— Docker 核心原理、镜像、容器、网络、存储

🎯 本章聚焦:Docker 底层原理是容器平台面试的“必争之地”。面试官通过镜像分层、隔离机制、网络模型、存储方案四个维度,考察候选人对容器本质的理解深度。本章提供结构化回答框架 + 高频追问 + 项目实战模板,助你从“会用”进阶到“懂原理”。
Docker 核心面试回答框架 定位问题 → 判断考察维度 核心原理 → 简述底层机制 关键特性 → 提炼 3 个要点 实践关联 → 结合项目经验 总结收尾 → 一句话概括 镜像 / 容器 / 网络 / 存储 分层 / 隔离 / 模型 / 卷 核心特性 + 设计思想 结合落地场景说明 20 秒内收束观点

📌 面试问答卡片 1:Docker 镜像分层结构原理

面试问题请解释 Docker 镜像的分层结构原理及其核心优势。
面试官考察点对 UnionFS、写时复制(CoW)、镜像复用机制的理解深度,以及能否清晰表述“层”的概念。
回答框架总述分层结构 → 只读层与可写层 → 写时复制机制 → 三大优势(复用/节省/加速)
简短示例回答Docker 镜像由多层只读层叠加而成,每层对应 Dockerfile 的一条指令。容器启动时在镜像层上添加可写层,修改通过写时复制在可写层进行,镜像层保持不变。优势在于层复用、节省存储、加速分发。
可能追问
  • 如何查看具体镜像的层信息?
  • 镜像层可以跨容器共享吗?共享的条件是什么?
  • 写时复制机制在高并发写入场景下有什么性能影响?
避坑提醒
❌ 不要混淆镜像层与容器层;不要忽略写时复制的性能开销(尤其大量小文件写入);不要误认为所有镜像层都是完全独立的。

📌 面试问答卡片 2:容器资源隔离与限制

面试问题Docker 容器如何实现资源的隔离与限制?请从内核机制层面说明。
面试官考察点对 Linux Namespace 类型与作用、Cgroups 子系统的掌握程度,以及是否理解“隔离+限制”的协同关系。
回答框架隔离维度(Namespace) → 限制维度(Cgroups) → 两者协同 → 与虚拟机隔离的差异
简短示例回答Docker 通过 Linux Namespace 实现进程、网络、文件系统等 6 大隔离,每个容器拥有独立命名空间。通过 Cgroups 对 CPU、内存、磁盘 IO 进行配额限制,防止资源争抢。两者配合形成“隔离+限制”的完整沙箱环境。
可能追问
  • Namespace 具体有哪几种?各自隔离什么资源?
  • Cgroups 如何配置 CPU 份额和内存上限?
  • 如何查看运行中容器的 cgroup 信息?
避坑提醒
❌ 不要只讲隔离不讲限制;不要误认为容器与虚拟机隔离级别相同;不要忽略 Cgroups v1 与 v2 的版本差异。

📌 面试问答卡片 3:Docker 网络模式与选型

面试问题Docker 支持哪些网络模式?在不同业务场景下如何选择?
面试官考察点对 bridge、host、none、overlay 等模式的原理理解,以及面对真实场景的选型判断力。
回答框架列举四类模式 → 原理说明 → 匹配典型场景 → 选型建议 + 安全考量
简短示例回答Docker 主要网络模式:bridge(默认 NAT)、host(共享网络栈)、none(无网络)、overlay(跨主机隧道)。单机开发选 bridge,跨主机集群选 overlay,高性能选 host,安全隔离选 none。生产环境建议 overlay 配合服务发现。
可能追问
  • overlay 网络如何实现跨主机通信?数据包封装过程是怎样的?
  • CNM 模型的核心组件(Sandbox、Endpoint、Network)如何协作?
  • 如何自定义 Docker 网络?
避坑提醒
❌ 不要忽略 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 eBPF 加速,延迟从 200μs 降至 50μs)
  • 有状态服务的数据持久化(Ceph RBD 块存储 + Local PV 读写优化)
  • 跨 AZ 容灾与流量调度(Global Ingress + 多集群联邦)
  • 网络策略精细化管控(NetworkPolicy + 微隔离白名单)
面试高频追问
  • Calico BGP 模式相比 overlay 隧道模式的核心优势是什么?
  • Ceph RBD 在容器场景下的性能调优参数(如 rbd cache、IO 队列深度)?
  • 跨 AZ 容器网络互通的具体实现方案?延迟如何控制在 2ms 以内?
  • 容器化后网络延迟增加了多少?如何定位和优化?
可迁移回答话术
“在金融交易系统的容器化迁移中,我们通过 Calico 的 BGP 模式直连取代了 overlay 隧道,将网络延迟控制在 50μs 以内。对于有状态服务,采用 Ceph RBD 块存储方案,结合 local PV 实现读写性能接近物理机。跨 AZ 容灾方面,通过多集群联邦和 Global Ingress 实现流量调度,RTO 控制在 15 秒内。”
⚠️ 面试提醒:项目案例切忌只讲“做了什么”,要突出“为什么选这个方案”和“量化收益”。面试官更关注你的技术选型思维和问题解决路径。
✅ 第二章复习自检清单
□ 能流畅说出镜像分层结构与写时复制流程
□ 能列举 6 种 Namespace 并说明各自隔离的资源
□ 能对比 bridge / host / overlay 三种模式的原理与适用场景
□ 能说出 CNM 模型的三个核心组件
□ 能用自己的话复述金融级容器平台网络与存储方案