章节摘要:服务一多,run 命令的长度与数量都会失控:网络、卷、环境变量、启动顺序,每样都要手敲。Compose 的答案是声明式编排——把整组服务写进一个 YAML 文件,up 一键起全组、down 一键收全组。本部三节递进:先读懂 Compose 文件的结构词条,再掌握 compose 命令族的现场用法,最后把应用加数据库加网关的多服务部署实战跑通。学完本部,单机编排从手艺变成工程。
阅读完本部,你应当能够:
金句:run 是点菜,Compose 是套餐——一次下单,整套上齐。
7.1 Compose 文件与结构词条:YAML 文件的解剖。services 里每个服务的 image、build、ports、environment、volumes 字段与前几部哪个词条对应,一一挂上钩子; networks 与 volumes 顶级声明的写法。
7.2 Compose 命令现场:compose 命令族全程会话。up 与 -d、down 与 -v 的删与留、ps 与 logs 怎么看整组状态、exec 与 restart 在编排层的用法,外加与散装命令的等价对照。
7.3 多服务部署实战:网关加应用加数据库的三服务项目从零到运行。重点是启动顺序的竞态处理与健康检查配置,以及改配置后的滚动重建。
三节沿"读文件—用命令—打实战"推进:7.1 的每个字段都能在 7.2 的命令输出里找到回声,7.3 则把前两节拧成一个可交付的项目:
+----------------+ +----------------+ +----------------+ | 7.1 文件结构 | --> | 7.2 命令现场 | --> | 7.3 部署实战 | | services 三大块 | | up/down/logs | | 三服务+健康检查 | +----------------+ +----------------+ +----------------+ | | | +-- 字段语义全部来自壹至陆部的词条:卷/网络/端口/环境 --+
前置:本部是前六部词条的汇合处——ports 对应叁部 -p、volumes 对应伍部挂载、networks 对应陆部组网,没有这些底子,YAML 只是天书。延伸:捌部排错会把 compose logs 与健康检查当作集群化前的最后一道关卡;本部管单机编排,多机编排(Swarm、Kubernetes)不在本册范围,但声明式的思想完全相通。过关自测:给你任意一份 Compose 文件,你能逐字段说出它等价于哪条 docker run、docker network create 与 docker volume create。