
类型:虚拟化技术
简介:基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。
迁移Docker Compose项目,最常见的翻车场景是:Compose文件复制过去,网站能打开,数据库却是空的。原因很直接,项目目录和数据卷不是一回事。迁移前先列清单,别只盯着一个YAML文件。
先确认项目组成
docker compose ps
检查目录里有没有 .env、Dockerfile、配置文件、脚本、证书和本地挂载目录。很多人只复制Compose文件,漏掉 .env,新环境一启动就报连接错误。
数据卷列出来
docker volume ls
docker volume inspect 卷名
数据库、上传文件、业务数据都要备份。命名卷和本地目录处理方式不同,别混在一起。
打包目录和卷
tar -czf project-backup.tar.gz /path/to/project
命名卷备份:
docker run --rm -v 卷名:/data -v /backup:/backup alpine tar -czf /backup/volume-backup.tar.gz -C /data .
文件名带项目名和日期,别都叫backup.tar.gz。
新服务器恢复
先装Docker和Compose,再恢复项目目录。创建同名卷:
docker volume create 卷名
恢复数据:
docker run --rm -v 卷名:/data -v /backup:/backup alpine tar -xzf /backup/volume-backup.tar.gz -C /data
确认权限和环境变量后启动:
docker compose up -d
先观察再切流量
看 docker compose ps 和日志,再验证页面、接口、数据库、上传文件和后台登录。旧服务器至少留一个观察周期,别新环境刚起来就删。
常见问题
迁移最容易漏什么?环境变量和数据卷。
新服务器数据库为空?查卷名、恢复路径和应用连接目标。
多久能删旧服务器?新环境稳定并完成一次备份验证后再说。

