使用方式 原理题建议沿着“用户命令 → Docker API → 运行时 → Linux 内核 → 应用结果”回答;生产题建议沿着“现象 → 证据 → 假设 → 验证 → 修复 → 预防”回答。不要只说结
使用方式 面试时不要只背一句定义。一个好的回答通常包含:先给结论,再解释机制,最后补充边界和实践。例如回答”容器和虚拟机的区别”时,先说共享内
1. 项目目标和边界 我们构建一个典型的 Web 服务: 浏览器 → Nginx(入口/TLS/静态文件) ↓ Go API(无状态) ↙ ↘ PostgreSQL(持久数据
1. 先定义 Docker 的安全边界 Docker 的安全边界至少包含四层: 宿主机与内核 ↓ Docker daemon / containerd / runtime ↓ 容器 namespace、cgroup、mount、capabili
1. 容器不是内核对象,而是机制组合 Linux 内核没有一个叫“container”的单独系统调用。容器运行时把多个内核机制组合起来: namespace 决定进程能看见什么
本篇较长,按需跳转: Compose 是什么 · 第一个项目 · 多容器实战 · 网络与 DNS · 访问宿主机端口 · 卷与配置 · 环境变量与秘密 · 健康检查 · 配置覆盖 · 现实问题排障 ·
1. 容器里的文件到底存在哪里 容器的根文件系统通常由多个只读镜像层和一个可写层组成: 镜像层:/usr、/bin、应用依赖(只读) 容器层:运行时新
1. Docker 网络的基本模型 默认 bridge 网络中,一个容器访问外部服务大致经过: 容器 eth0 │ veth pair docker0 bridge ── 宿主机 eth0 ── 网关/互联网 │ iptables/nftables NAT(源地址转换) 容器拥有自
1. Dockerfile 到镜像的过程 执行: docker build -t example/api:dev . 最后的 . 是构建上下文。CLI 会把上下文发送给 daemon/BuildKit;Dockerfile 中能访问的 COPY
本篇较长,按需跳转: docker update 概述 · 不是更新镜像 · CPU · 内存 · PIDs · 在线更新原理 · Compose 漂移 · cgroup v2 · 容器内视图 · docker stats · 排障清单 1. docker update:动态修改已
本篇较长,按需跳转: 四种策略 · 按事件比较 · on-failure 判断 · PID 1 · docker restart 命令 · Compose 三种 restart · 策略与健康检查 · HEALTHCHECK 深入 · depends_on 启动顺序 · 信号与优雅退出 · OOM · 如何选择
快速跳转: 镜像命令 · docker run · 容器生命周期 · create vs run · pause/unpause · rename/wait/diff · 多架构拉取 · 查看状态 · docker inspect · 调试容器 · 日志与退出码 · 清理策略 · 排障流程 1. 镜像命令 1.1 搜
1. 安装前先做选择 Docker 有两种常见形态: 形态 适合场景 主要组件 Docker Engine Linux 服务器、CI、生产环境 dockerd、containerd、runc、CLI、C
1. Docker 解决了什么问题 传统部署经常把一台机器配置成“手工艺术品”:操作系统版本、运行时、系统库、环境变量、配置文件和启动脚本都依赖人工操作。开发
1. 这个系列要解决什么问题 学 Docker 最常见的误区是从命令表开始:背完 pull、run、exec,仍然解释不了容器为什么退出、端口为什么不通、数据为什
这是 Linux 系列的第一篇。全系列共 40 篇,分两部分:01~17 篇是上手层,把日常操作讲透、命令参数讲全;18~40 篇是深入层,讲每个机制「为什么被设
上一篇建立了 Linux 内核、发行版和命令来源的坐标系。接下来马上会遇到一个最实际的问题:软件怎样进入系统? apt install nginx 看起来只有一行,背后却不是“从网站下
上一篇讲软件怎样通过包管理器进入系统,这一篇继续解决「东西该放哪、路径怎么解析」。同样先看五个问题: /usr 里放的全是系统程序,为什么叫 usr(u
这一篇假设你已经能用 ls、cd、cp、mv、rm 完成日常操作。所以我们不从「怎么复制文件」讲起,而是从五个用了很久却答不上来的问题讲起: 磁盘
上一篇讲了文件的元数据,这一篇讲怎么看内容。同样五个问题开头: cat 一个 5GB 的日志会发生什么?为什么该用 less? tail -f 和 tail -F 差在哪?为什么日志切割