把博客塞进 Docker 的好处是换机器时只需要搬一个 docker-compose.yml 和数据卷。下面是我用了两年的最小组合。
三个容器,各司其职
| 容器 | 作用 | 注意 |
|---|---|---|
| nginx | 静态资源与反代 | 只暴露 80/443 |
| php-fpm | 跑 Typecho | 与 nginx 共享代码目录 |
| mysql | 数据 | 数据卷必须独立挂载 |
关键配置
services:
web:
image: nginx:alpine
volumes:
- ./site:/var/www/html:ro
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro三件事最容易踩坑:
- 权限:php-fpm 的
www-data必须能读usr/uploads,否则后台上传直接 500。 - 时区:容器默认 UTC,评论时间会差 8 小时,记得挂
/etc/localtime。 - 上传大小:
client_max_body_size和upload_max_filesize两处都要改。
HTTPS
证书用 acme.sh 申请,续期后 docker compose exec web nginx -s reload 即可,不需要重启整个栈。
备份
数据库和 usr/uploads 分两个任务:数据库每天 mysqldump,附件每周 rsync 一次。备份脚本写进 cron,别指望手动。
评论 0
还没有评论,来说两句吧。