别把 Docker 当黑盒,先搞懂它凭什么跑起来

很多人学 Docker 卡在两个极端:要么只会 `docker run` 凑合用,遇到权限、网络、存储问题就束手无策;要么一上来就啃 OCI 规范、UnionFS 原理,看两页就想放弃。这门课的核心价值,在于它强制你**把 Docker 拆回三个基本要素:镜像、容器、仓库**,然后立刻用 Django 项目验证这些要素在实际开发中是怎么联动的。

课程第一部分约 80 分钟,集中讲解 Docker 的安装与核心概念。这部分不是走过场——它要求你在安装完成后,能独立解释 `docker images` 和 `docker ps` 背后的数据关系,以及为什么同一张镜像可以运行出多个隔离的容器。如果你之前只是跟着文档敲命令、不理解 `docker pull` 到底从哪拿文件、`docker run` 创建了哪些内核级别的隔离机制,这一节就是必须补的缺口。

第二部分约 50 分钟,是一个完整的 Django 应用容器化实践。这里不教你写 Django,而是把你已经熟悉的 Python Web 项目,用 Dockerfile、`docker-compose.yml` 从零打包成可部署的容器。你会遇到真实的坑:依赖如何层叠缓存、静态文件怎么挂载、环境变量怎么注入。完成这一节后,你应该能独立把一个本地运行的 Django 项目改成用一条 `docker compose up -d` 启动,并且说清楚每一个指令在容器生命周期里做了什么。

原理不是加分项,是排查问题的唯一工具

第三部分约 65 分钟,讲 Docker 实现原理与网络。这是整门课最容易跳过的部分,但也是决定你能否从「会用」跨越到「能修」的分水岭。Docker 网络模型(bridge、host、none、自定义网络)在面试和实际部署里反复被问到,而它的底层原理——Linux 命名空间做隔离、cgroup 做资源限制、OverlayFS 做镜像层叠——一旦模糊,遇到「容器之间为什么不能互相 ping 通」「端口映射为什么失效」这类问题就只能靠猜。

建议的学习顺序很关键:**先完整走完第一、二部分,建立肌肉记忆,再回头精读第三部分的原理和网络内容**。这样你在理解 `docker network create` 或 `--network` 参数时,脑子里已经有具体的 Django 项目作为参照物,不会再觉得这些概念是抽象的考试题。

学完这门课后,你应该能够独立回答以下问题:Docker 镜像和容器的本质区别是什么;如何为一个现有的 Python Web 项目编写可用的 Dockerfile;为什么容器共享宿主机内核却仍能彼此隔离;宿主机端口如何映射到容器内部服务;以及如何用自定义网络让多个容器安全通信。

资料包配合练习的方式很直接:每一节对应的视频讲到一个命令或配置时,暂停视频,在你本地的 Linux 环境(推荐用虚拟机或 WSL2)里手动执行一遍,不要直接用脚本一键跑通。原理部分建议搭配官方文档的「Namespaces and cgroups」章节对照阅读,把视频里提到的概念落到内核技术的具体名字上。

课程目录

1 docker介绍、安装及要素讲解 (01:20:49)
2 Django应用容器化实践 (54:02)
3 docker实现原理与网络 (01:07:59)