如何备份和迁移Plausible容器到新服务器。以下是详细步骤:
在源服务器上操作
1. 备份Docker镜像
保存所有相关镜像到tar文件
docker save postgres:14-alpine -o postgres-14-alpine.tar
docker save plausible/analytics:v2.0 -o plausible-analytics-v2.tar
docker save clickhouse/clickhouse-server:23.3.7.5-alpine -o clickhouse-server.tar
docker save bytemark/smtp:latest -o smtp.tar
2. 备份数据卷
创建备份目录
mkdir docker_backup
备份各个数据卷
docker run --rm -v hosting_db-data:/source:ro -v $(pwd)/docker_backup:/backup alpine tar -czf /backup/db-data.tar.gz -C /source .
docker run --rm -v hosting_event-data:/source:ro -v $(pwd)/docker_backup:/backup alpine tar -czf /backup/event-data.tar.gz -C /source .
docker run --rm -v hosting_event-logs:/source:ro -v $(pwd)/docker_backup:/backup alpine tar -czf /backup/event-logs.tar.gz -C /source .
3. 备份配置文件
tar -czvf hosting.tar.gz -C /opt/docker_data/plausible hosting
备份完结!
在新服务器上操作前,要把以上的备份文件上传到新服务器
在新服务器上恢复
- 加载Docker镜像
docker load -i postgres-14-alpine.tar
docker load -i plausible-analytics-v2.tar
docker load -i clickhouse-server.tar
docker load -i smtp.tar
- 创建数据卷
docker volume create hosting_db-data
docker volume create hosting_event-data
docker volume create hosting_event-logs
- 恢复数据卷内容
mkdir docker_backup
把前面的数据卷备份文件上传到docker_backup目录
docker run --rm -v hosting_db-data:/target -v $(pwd)/docker_backup:/backup alpine sh -c "cd /target && tar xzf /backup/db-data.tar.gz"
docker run --rm -v hosting_event-data:/target -v $(pwd)/docker_backup:/backup alpine sh -c "cd /target && tar xzf /backup/event-data.tar.gz"
docker run --rm -v hosting_event-logs:/target -v $(pwd)/docker_backup:/backup alpine sh -c "cd /target && tar xzf /backup/event-logs.tar.gz"
5. 重新启动容器
mkdir -p /opt/docker_data/plausible/hosting
cd /opt/docker_data/plausible/hosting
把hosting.tar.gz上传到hosting目录解压,最后运行
docker compose up -d
或者,在 docker-compose.yml 所在目录下执行
docker-compose down
docker-compose up -d
至此,迁移完成。
清理临时文件
rm -rf docker_backup
rm *.tar
rm /opt/docker_data/plausible/hosting/hosting.tar.gz