一台 2C4G 的小机器,我跑着博客、图床和几个小工具。用了一年 Compose,总结几条经验。
目录约定
/opt/services/
blog/
docker-compose.yml
data/
minio/
docker-compose.yml
data/
一个服务一个目录,数据都放在同级的 data/ 里,备份时直接打包整个目录,不用记数据卷名字。
一定要写 restart 策略
services:
app:
image: example/app:1.2.3
restart: unless-stopped
机器重启、容器 OOM 之后能自己回来,省掉很多半夜被告警叫醒的机会。
用 tag 而不是 latest
latest 意味着某天 docker compose pull 会给你一个不兼容的新版本。固定 tag,升级是主动行为。
顺手加个日志上限
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
不设上限的话,几个月后 /var/lib/docker 会把磁盘吃满,这个坑我踩过一次。
备份要真的能恢复
我的做法是每周 rsync 到另一台机器,每季度真机演练一次恢复。没演练过的备份,等于没有备份。