本节摘要:学习 Compose 的资源分五类:官方文档与规范是语法权威,镜像仓库与模板库提供现成素材,在线实验环境降低试错成本,问答社区与博客解决疑难杂症,管理工具提升日常效率。本节按"去哪找什么"逐类列出,平台不附链接,只给名称与用途,帮助读者建立自己的学习路径。
Docker 官方文档是学习 Docker 和 Compose 的起点,没有之一。它的结构与本书的编排思路一致:先讲镜像、容器、网络、卷这些基础概念,再讲安装、命令、存储、安全,最后是实践教程。对初学者,官方文档的入门教程值得完整走一遍:它用一个简单的 Web 应用示例,带你把镜像构建、容器运行、Compose 编排串起来,半小时能建立整体印象。
官方文档里的 Compose 栏目则是本书之外最值得精读的部分,覆盖文件语法、全部命令、配置选项、网络与卷的细节、构建与扩展的进阶话题。它的优点有两个:一是准确,任何第三方教程和博客都可能过时,官方文档永远跟随最新版本更新;二是示例短小,每个配置键都配了最小可运行片段。缺点也有——它按功能组织而非按场景组织,读起来像字典,所以建议当参考书查,别当小说读。
前几年学 Compose 最痛苦的事是版本分裂:官方文档说一套,网上教程说另一套,还有 version 字段的层层迷雾。这个问题现在有了统一答案——Compose 规范(compose-spec)。它把 Compose 文件格式从 Docker 的版本控制中独立出来,由社区维护,Docker 官方的实现只是它的一个参考实现。
规范文档详细定义了每一个顶层键、每一个服务键的类型与行为,是判断"这个写法对不对"的终极依据。当你在官方文档、博客、AI 回答之间看到互相矛盾的语法时,回到规范文档对一遍,基本能定案。它也是新版 docker compose 命令背后的实现依据,理解了规范,就理解了为什么 version 字段可以删除。
Docker Hub 是公共镜像仓库,绝大多数常用软件的官方镜像都在这里发布:nginx、postgres、redis、mysql、nginx 代理镜像、各种语言运行时。找镜像的两个技巧:优先选标有官方标志的镜像,可信度更高;读镜像主页的文档部分,官方镜像的用法、环境变量、卷路径都写在主页上,这些信息是写 Compose 文件的第一手资料。
awesome-compose 是 Docker 官方维护的 Compose 模板合集,按应用场景组织:Web 应用加数据库、前后端分离、消息队列、监控栈、开发环境等,每个模板都是完整可运行的 Compose 文件。它和本书的关系是互补的:本书讲思路与坑,模板库给最新鲜的官方写法。改模板时注意两点:一是检查镜像标签是否还维护,二是理解每个键的用途再动手,别直接改完就跑。
Play with Docker 是一个在线 Docker 环境,浏览器打开就能用,不需要本地安装任何软件。它提供带 Docker 引擎的临时虚拟机,可以直接练习 docker 和 docker compose 命令。价值在于:本地环境一时装不好、或者不想污染自己电脑时,先在在线环境验证配置;也可以在共享会话里把问题现场发给别人一起看。
在线环境的限制也明显:虚拟机有时长限制,会话结束后环境清空,数据不保留。所以它适合验证语法和练手,不适合跑长期服务。我通常的用法是:拿到一段可疑配置,先丢进在线环境跑一遍,确认可行再落到本机。
Stack Overflow 是程序员问答网站,Docker 和 Compose 的问题存量极大,多数常见报错都能搜到现成答案。搜答案的关键词建议带上版本号和错误原文,比如 compose depends_on condition 的报错,直接搜错误消息比搜概念词命中率高得多。
Docker 官方论坛是官方维护的讨论区,适合提问和参与官方动态的讨论,官方维护者会定期回复。Reddit 上有 Docker 相关的子版块和 DevOps 相关的子版块,讨论氛围轻松,适合了解业界动态和工具选型,遇到冷门问题时也可以发帖求助。此外一些技术社区维护 Slack 频道,适合实时交流,但历史问题检索能力弱,搜索还是靠前两者。
提问的质量直接决定回复的质量,三个要点:描述清楚环境(操作系统、Docker 版本、Compose 版本),贴出完整的 docker compose config 输出和错误日志,说明已经尝试过什么。把这三样给全,多数问题一轮就能解决。
Docker 官方博客发布产品动态和技术文章,适合追踪版本演进和新功能。DigitalOcean 的教程社区有大量质量稳定的 Compose 实操文章,特点是步骤完整、面向部署落地,比一般博客可靠。Medium 上有大量技术博主分享 Compose 实践,质量参差,建议优先看带完整配置示例的文章。视频方面,YouTube 上有不少 Compose 教程频道,适合喜欢跟着操作的学习者。商业课程平台如 Udemy、Coursera、edX 上也有成体系的 Docker 课程,适合需要系统化学习路径的人,选课时注意看更新时间,Docker 技术演进快,三年前的课程内容可能已经过时。
阅读博客的三个过滤器:看文章里的命令是 docker-compose 连字符还是 docker compose 空格——连字符文章大概率有年头了;看镜像标签是否还是 latest 一刀切;看是否解释了配置键的作用而不是只给代码。三个过滤器都过,文章基本可信。
Portainer 是图形化的 Docker 管理界面,用浏览器管理容器、镜像、网络、卷,还能直接操作 Compose 堆栈。它本身也是一个容器,用 Compose 起一个 Portainer 是入门练习的好项目。适合不想记命令、或者要给团队里非技术成员提供操作入口的场景。
Kitematic 曾是 Docker 官方提供的图形化界面,方便搜索、下载和运行镜像,但已经停止维护,思路可以借鉴——镜像的搜索与启动在图形界面里确实直观。Visual Studio Code 的 Docker 扩展是目前开发期最实用的工具:编辑器里直接管理容器、构建镜像、右键 Compose 文件启动,还支持断点调试容器内应用。装上它之后,敲命令的次数能少一半。
| 资源 | 去哪找什么 | 解决什么问题 | 适合谁 |
|---|---|---|---|
| Docker 官方文档 | 基础概念、安装、命令、安全 | 建立整体认知 | 所有阶段 |
| Compose 官方文档 | 文件语法、命令、配置选项 | 查具体键的用法 | 所有阶段 |
| Compose 规范 | 顶层键与服务键的完整定义 | 语法争议定案 | 进阶读者 |
| Docker Hub | 官方镜像与用法说明 | 找镜像、看环境变量 | 所有阶段 |
| awesome-compose | 官方维护的模板合集 | 直接抄现成配置 | 入门到进阶 |
| Play with Docker | 在线临时环境 | 不装软件验证配置 | 入门读者 |
| Stack Overflow | 存量问答 | 搜报错、找答案 | 所有阶段 |
| Docker 官方论坛 | 官方讨论区 | 提问、跟官方动态 | 进阶读者 |
| Reddit 子版块 | Docker 与 DevOps 讨论 | 了解动态与选型 | 兴趣读者 |
| Portainer | 图形化管理界面 | 浏览器管理全部资源 | 运维团队 |
| VS Code Docker 扩展 | 编辑器内管理 | 开发期高频操作 | 开发者 |
⚠️ 警惕过时教程:Docker 生态迭代快,写于 2020 年之前的 Compose 教程,version 字段、docker-compose 连字符、deprecated 的语法都可能误导。判断新旧比判断对错容易:看到连字符命令就先打个问号。
💡 排错路径建议:先官方文档查语法,再 Stack Overflow 搜错误原文,还不行就去官方论坛带齐环境信息提问。这条路径能覆盖九成问题,也避免在过时博客里浪费时间。
资源地图在手,最后一步是把前五章的经验沉淀成检查单——6.3 节的最佳实践清单,让你每次部署前都能照单自检。