多容器协作靠 compose 一份文件描述,一条 up 全起来,比手敲一堆 docker run 强太多。

示例配置

version: "3.8"
services:
  web:
    build: .
    ports: ["80:80"]
    depends_on: [db]
  db:
    image: postgres:16
    volumes: ["pgdata:/var/lib/postgresql/data"]
volumes:
  pgdata:

要点速览

  • services 定义每个容器,depends_on 表明启动顺序。
  • 用命名 volume 持久化数据库,数据不随容器没。
  • 调环境改 yaml 即可,可进版本库团队共享。
compose 把「怎么起这套服务」写进文件,环境一致性的问题就消失了。