系列:容器部署基础
- Docker 安装与使用教程:从零部署第一个容器服务
- Dockerfile 入门:构建自己的应用镜像
- Docker Compose 使用指南:管理多容器服务
- Docker 数据卷与备份:数据库容器怎么保护数据
- Docker 网络与端口映射:容器之间怎么通信
- Docker 日志和排障:logs、exec、inspect、stats
- 用 Docker 部署一个 Python Web 项目
- Nginx 反向代理入门:静态文件、HTTPS 和 Web 服务转发
- HTTPS 和证书部署指南:Let’s Encrypt、Cloudflare、Nginx 怎么配
- Docker 生产环境部署注意事项:镜像、日志、数据卷和健康检查
容器可以随时删,数据不行。很多 Docker 事故不是服务起不来,而是数据库数据放错地方,容器一删就没了。
volume 和 bind mount
volumes: - pgdata:/var/lib/postgresql/data这是 named volume,Docker 管理存储位置。
volumes: - ./uploads:/app/uploads这是 bind mount,宿主机目录直接挂进去。
查看 volume
docker volume lsdocker volume inspect pgdata不要在不确定用途时清理 volume。
数据库备份
PostgreSQL 更推荐逻辑备份:
docker compose exec db pg_dump -U postgres app > backup.sql恢复:
cat backup.sql | docker compose exec -T db psql -U postgres appMySQL 类似用 mysqldump。
常见问题
不要直接复制正在运行中的数据库文件目录当备份。文件可能不一致。先用数据库自己的 dump 工具。
上传文件目录可以用 rsync 使用指南:服务器文件同步与备份 拉回。
总结
容器是临时的,数据卷是长期的。数据库用 dump,上传文件用同步,Compose 文件和 .env 也要备份。部署前先想清楚数据在哪里,比出问题后恢复更重要。