Docker Compose 教程:一个文件管住所有容器
摘要
Docker Compose 用一个 YAML 文件编排多容器应用。本教程依据 Docker 官方文档,介绍 compose.yaml 的服务/网络/数据卷写法(WordPress+MySQL 实例)、up/down/logs 核心命令、升级流程 pull+up -d、build 直构建代码,以及 restart: always 实现开机自启。
Docker Compose 教程:一个文件编排所有容器
真实项目从来不是单容器:博客要配数据库,应用要配缓存,再加个反代。手动逐个 docker run 又长又容易错。Docker Compose 用一个 YAML 文件把整组服务定义下来,一条命令全部拉起。本教程依据 Docker 官方文档(docs.docker.com/compose)整理。
一、安装确认
新版 Docker Desktop 和 get.docker.com 脚本安装的 Docker Engine 都自带 Compose 插件,验证:
能输出版本号即可,命令统一用 docker compose(带空格,旧版 docker-compose 已是遗留写法)。
二、第一个 compose.yaml
以"WordPress + MySQL"经典组合为例,在项目目录建 compose.yaml(旧名 docker-compose.yml 同样有效):
注意 WORDPRESS_DB_HOST 直接写了 db——同一 compose 文件里的服务自动在同一个网络里,用服务名就能互相访问,这是 Compose 最大的便利。
三、核心命令
升级应用的完整流程:
Compose 会只重建镜像变化的容器,数据卷原样保留。
四、自建镜像的项目
应用代码不需要先打成镜像再推仓库,Compose 可以直接构建:
改了代码后 docker compose up -d --build 重新构建并滚动更新。
五、restart 策略
restart: always 让容器开机自启、崩溃自动拉起——配合 Docker 的 live-restore,服务器重启后你的整套服务自动恢复,无需写任何 systemd 或 crontab。个人自托管服务建议统一加上。
六、总结
需求 | 命令 |
|---|---|
启动全套服务 |
|
看日志 |
|
停止清理 |
|
升级应用 |
|
改代码重跑 |
|
开机自启 | 每个服务加 |
写好一个 compose.yaml,部署就从"一长串命令"变成"拷文件、up -d"。这也是自托管社区分享服务的通用格式——以后看到别人的 compose 文件,直接就能用起来。
