Docker 容器技术 — 知识地图

本笔记为 MOC(Map of Content)

Docker 容器技术从镜像构建网络通信运行时兼容性,形成一条完整的技术栈。本 MOC 汇总相关的原子笔记。

Dockerfile 指令

主题核心笔记
Exec 形式 vs Shell 形式Docker-Exec形式与Shell形式
CMD 指令Dockerfile-CMD指令
ENTRYPOINT 指令Dockerfile-ENTRYPOINT指令

核心公式

容器最终执行的命令 = ENTRYPOINT(固定可执行文件) + CMD(默认参数,可被 docker run 覆盖)

详见 CMD 配合模式

网络

主题核心笔记
Bridge 网络模式Docker网络模式-bridge
iptables 端口映射iptables端口转发(跨笔记关联)

运行时与兼容性

主题核心笔记
cgroup v2 兼容性Docker-cgroup-v2-兼容性问题
iptables 模式切换导致链缺失案例-Docker-iptables模式切换导致链缺失
Alpine 镜像不含 tzdataAlpine镜像不自带tzdata
TZ 环境变量与时区数据TZ环境变量只是指针-时区数据才是本体

运行时资源缺失是「静默故障」的高发区

镜像里少一个包(如 tzdataca-certificates)通常不导致启动失败,而是让时区静默退回 UTC、TLS 静默握手失败。 对策是把隐式依赖显式化,并用构建期断言([ -f ... ])把问题提前到构建阶段暴露。

镜像分析与诊断

主题核心笔记
docker history 是审计日志不是文件清单docker-history是审计日志不是文件清单
包数据库与文件系统是两套真相apk数据库与文件系统是两套真相
ENOENT 无法区分层级容器文件消失排查-ENOENT无法区分层级

排查「镜像里到底有没有某文件」的手段可信度

容器内 ls/mountdocker export + tar -t > .RootFS.Layers diff_id 比对 > 包数据库 > apk audit > docker history(最易误导)

相关原子笔记

TABLE
  file.tags as "标签"
FROM "10-Topics"
WHERE file.name IN ["Docker-Exec形式与Shell形式", "Dockerfile-CMD指令", "Dockerfile-ENTRYPOINT指令", "Docker网络模式-bridge", "Docker-cgroup-v2-兼容性问题", "案例-Docker-iptables模式切换导致链缺失", "Alpine镜像不自带tzdata", "TZ环境变量只是指针-时区数据才是本体", "docker-history是审计日志不是文件清单", "apk数据库与文件系统是两套真相", "容器文件消失排查-ENOENT无法区分层级", "K8s卷挂载是覆盖而非合并"]
SORT file.name ASC

外部关联