Docker
1 基础概念 3
2 镜像与 Dockerfile 5
- 构建缓存:改哪一行会让哪些层失效点击 Dockerfile 构建链,定位缓存失效范围,理解 COPY 校验、依赖安装顺序和 .dockerignore,并动手验证。
- CMD 与 ENTRYPOINT 的区别拼出容器的最终启动命令,区分 CMD 覆盖与 ENTRYPOINT 保留,并看懂 shell、PID 1 和停止信号。
- Dockerfile 常用指令:从源码到 Web 镜像逐行理解 FROM、RUN、COPY、WORKDIR、ENV、EXPOSE,用最小 Web 应用区分文件层、镜像配置与端口发布。
- 镜像分层:只存变化,修改先复制从 Docker 官方 history 示例看懂镜像分层,用分步图与本机实验解释写时复制和底层共享。
- 多阶段构建:把镜像变小用两栏图和 Go 对照实验,理解多阶段构建与 COPY --from,只把运行所需的文件带进最终镜像。
3 容器运行与管理 4
- 容器生命周期:停止后仍然存在沿状态机选择 create、start、pause、unpause、stop、kill 和 rm,理解信号及 exited 容器保留的资源。
- docker run 常用参数:-d -it --rm --name -e -p区分终端连接、退出清理、容器配置和端口发布,用图示与命令填空组合 docker run 的六组常用参数。
- 进入与排查:exec、logs、inspect、stats从容器起不来、启动后退出、运行却无法访问三个入口收集证据,区分 exec 与 attach,并用 stats 辅助排障。
- 重启策略与资源限制:--restart、--memory、--cpus比较四种 Docker 重启策略,观察内存 OOM 与 inspect 证据,用 CPU 配额图和本机实验理解容器资源限制。
4 存储与数据卷 2
5 容器网络 4
- bridge 网络:docker0、veth 对与网络命名空间沿着容器 eth0、veth 对和 docker0 读懂 bridge 拓扑,用 ip 与 network inspect 对照,再追踪出站 NAT 和回包。
- host / none 网络模式用三栏网络边界图区分 bridge、host、none,解释 host 为什么忽略端口映射,并用实验验证 none 只保留回环。
- 端口映射 -p 8080:80:包从宿主机到容器走了哪些路追踪请求从宿主机 8080 到容器 80 的路径,用 docker port、ss 与 curl 检查发布规则,并比较回环地址和所有接口的访问范围。
- 自定义网络与容器间 DNS用自定义 bridge 网络让两个容器按名字互 ping,解释 127.0.0.11,并分别验证名字解析与跨网络隔离。
6 Compose 多容器 3
7 底层原理 4
- cgroups:限制了什么沿 cgroup v2 层级读懂资源上限,用只读实验把 --memory、--cpus 对应到 memory.max、cpu.max,并区分 OOM 与 CPU 节流。
- 不用 Docker 手搓一个“容器”(unshare + chroot)在 Linux 虚拟机里,从 rootfs、unshare、chroot 和 /proc 逐步组装隔离进程,再用 cgroup v2 限制内存,并对照 Docker 做了什么。
- namespace:隔离了什么(pid、net、mnt、uts、ipc、user)通过六张资源视图小图、预测练习与 /proc 实验,解释 Docker namespace 隔离的内容,识别共享边界与 UID 映射。
- overlayfs:镜像层如何叠成一个文件系统用四目录关系图、写时复制分步图和 whiteout 对照,解释 OverlayFS,并按 Docker 29 的存储后端设计 inspect 与删除实验。
8 安全与生产实践 3
前置知识